oracle怎么查询周期 oracle查询本周

oracle怎么查询上周的数据(例如今天是周日,我要查询出上个周一到周日的数据)--1、取某天在本周中的第几天(默认周日开始算第1天)
select to_char(to_date('2011-04-11','yyyy-mm-dd'), 'd') from dual;
--2、如果要从周一开始算第1天,需要做一些手脚
--大概思路是:1变成7,2变成1,3变成2......,7变成6
select decode(to_char(to_date('2011-04-04', 'yyyy-mm-dd'), 'd'),
1,
7,
to_char(to_date('2011-04-04', 'yyyy-mm-dd'), 'd') - 1)
from dual;
--3、再根据上面的结论倒推到上周时间
select to_date('2011-04-04', 'yyyy-mm-dd') -
decode(to_char(to_date('2011-04-04', 'yyyy-mm-dd'), 'd'),
1,
7,
to_char(to_date('2011-04-04', 'yyyy-mm-dd'), 'd') - 1) - 71,
to_date('2011-04-04', 'yyyy-mm-dd') -
decode(to_char(to_date('2011-04-04', 'yyyy-mm-dd'), 'd'),
1,
7,
to_char(to_date('2011-04-04', 'yyyy-mm-dd'), 'd') - 1) - 716
from dual;
ORACLE数据库查询一周以内的数据怎么写截取本周第一天:
SQL select sysdate,trunc(sysdate,'d') from dual;
SYSDATETRUNC(SYSDATE,'D')
--------------------------------------
2009-03-24 21:29:322009-03-22 00:00:00
oracle怎么查一年有多少天?用sqloracle怎么查询周期的查询方法是,例如您需要查询2009年有多少天,用sql表达为
select to_date('20091231','yyyymmdd') - to_date('20090101','yyyymmdd')1 from dual
查询出来oracle怎么查询周期的结果就是yyyy这一年有多少天
如何查询oracle数据库一周的数据参考 oracle11g行变列两种办法的比较:
方法1:优点是分析函数,缺点:返回log , 低效,
selectlink_pid, replace(strs,',','|')all_forms
from
(select t.link_pid,
wmsys.wm_concat(t.form_of_way)
over(partition by t.link_pid order by t.form_of_way) strs,
row_number() over(partition by t.link_pid order by t.form_of_way) RN,
count(1) over(partition by t.link_pid ) CNT
from rd_link_form t
) where RN=CNT
方法2:优点是高效,返回char,缺点:不是分析函数
select t.link_pid,
listagg(t.form_of_way, '|')
within group (order by t.form_of_way)all_forms
from rd_link_form t
group by t.link_pid
listagg()需在11.2版本下才行
两种方法的比较:依link_pid去重后有23万的数据量,方法1的wmsys.wm_concat用3小时看不到结果,方法2的listagg用80秒看到结果
【我以字典表user_tab_columns改写了上述SQL , 如下,大家直接执行就行:】
方法1:
select table_name, replace(strs, ',', '|') all_forms
from (select t.table_name,
wmsys.wm_concat(t.COLUMN_NAME) over(partition by t.table_name order by t.COLUMN_NAME) strs,
row_number() over(partition by t.table_name order by t.COLUMN_NAME) RN,
count(1) over(partition by t.table_name) CNT
from user_tab_columns t)
where RN = CNT
方法2:
select t.table_name,
listagg(t.COLUMN_NAME, '|')
within group (order by t.COLUMN_NAME)all_forms
from user_tab_columns t
【oracle怎么查询周期 oracle查询本周】 group by t.table_name
大家可以直接在自己的pl/sql中运行上述SQL
Oracle中查周期,上个月23号--本月22为一个月 , 怎样查?谢谢啦!WHERE DATE=TRUNC(LAST_DAY(ADD_MONTHS(SYSDATE,-2)) 23,'DD')
AND DATE=
TRUNC(LAST_DAY(ADD_MONTHS(SYSDATE,-1)) 22,'DD')
关于oracle怎么查询周期和oracle查询本周的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。

    推荐阅读