Oracle SQL

1.截取日期

TRUNC('20141111595959', -6) = 20141111000000

SELECT TRUNC(TO_CHAR(sysdate - 1, 'YYYYMMDDhhmiss'), -6) FROM dual; 

SELECT TO_CHAR(sysdate, 'YYYYMMDD')||'000000' FROM dual;

2.闪回误操作

ALTER TABLE t1 ENABLE row movement;
FLASHBACK TABLE  t1 TO timestamp to_timestamp('14-11-14 14:59:29','YY-MM-DD hh24:mi:ss');

3.查询某一时点的数据
SELECT * FROM t1 AS OF TIMESTAMP(TO_DATE('20141202103000', 'YYYYMMDDHH24MISS'));

4.NOT
SELECT * FROM t1 WHERE NOT(sex = 'M' AND company IN ('a', 'b', 'c', 'd'))
想要查询company NOT IN ('a', 'b', 'c', 'd'),但又想缩小范围即sex=‘M'时有此约束,体会NOT的妙用。

5.删除数据需要关联其他表用EXISTS
DELETE FROM t1 WHERE EXISTS(SELECT * FROM t2 WHERE t1.name = t2.name)

6.分析函数
SUM(amt) OVER(PARTITION BY custId ORDER BY age)
RANK() OVER()

7.复制表结构及表数据
create table table1_HC as select * from table1
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值