oracle常用语句

分组去重取第一条数据

SELECT *       
    FROM (SELECT ROW_NUMBER() OVER(PARTITION BY x ORDER BY y DESC) rn,       
          t.*       
          FROM test1 t)       
   WHERE rn = 1  ;   

存在更新,不存在插入

MERGE INTO atable a  
USING (  
  SELECT  *
  FROM btable 
  ) b  
ON (a.id = b.id)  
WHEN MATCHED THEN  
  UPDATE SET a.name=b.name,a.f_account=b.f_account
WHEN NOT MATCHED THEN  
  INSERT (a.id,a.name, a.f_account) 
  VALUES (b.id,b.name,b.f_account); 
 

查找重复数据

select t.* from table t
where t.name in (select   t.name from table t group by t.name having count(t.name) > 1)
order by t.name desc;
 

取改时间字段数据为今天的数

SELECT * FROM lr_base_log a 
WHERE 
TO_CHAR(a.f_operatetime,'yyyy-mm-dd')=TO_CHAR(SYSDATE,'yyyy-mm-dd');


日期比较

第一种:<,>, <= , >=
  select * from 表名 where 日期列 >= to_date('2015-10-20 00:00:00','yyyy-mm-dd hh24:mi:ss') and t.日期列 <= to_date('2015-10-20 23:59:59','yyyy-mm-dd hh24:mi:ss')1
第二种 between and
select * from 表名 where 日期列 between to_date('2015-10-20 00:00:00','yyyy-mm-dd hh24:mi:ss')and to_date('2015-10-20 23:59:59','yyyy-mm-dd hh24:mi:ss')
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值