sql 各种需求写法(oracle分页,group by,月日比较(不含年),重复列查找)

1 oracle分页的一种写法
SELECT * FROM ( SELECT row_.*, rownum rownum_ FROM (...... ) row_ WHERE rownum <= ?) WHERE rownum_ > ? 

2 日期月日比较不用年(转换成字符串可直接进行 >  < 比较)
 select  
 substr('0' || Extract(MONTH from to_date(to_char(sysdate,'yyyy-mm-dd'),'yyyy-mm-dd')),2) --月份
|| substr('0' || Extract(DAY FROM to_date(to_char(sysdate,'yyyy-mm-dd'),'yyyy-mm-dd')),2)  --日
from dual;

3 列重复的取出最大的或者最小的,或者计算有重复的行
select t1.pid, max(t.T_END_DATE) as insDate
  from tb_oyp t1,tb_poy t2  
 where t1.c_tci_id = t2.c_cst_id
 group by pid
 --t1与t2一对多关系
 --所以查出来如下可能:
 -- 1   2010-2-2
 -- 1   2010-4-3
 -- 通过 group by max()之后可以得出一条最大的
 -- 也可以 group by min()得出最小的一条
 -- 也可以 group by count(pid)得出重复的;

你可能感兴趣的:(oracle,sql,C++,c,C#)