oracle/sql

1.查表1分钟之前的数据

select * from abc as of timestamp sysdate-1/1440

2.merge into
MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句。通过MERGE语句,根据一张表或子查询的连接条件对另外一张表进行查询,连接条件匹配上的进行UPDATE,无法匹配的执行INSERT。这个语法仅需要一次全表扫描就完成了全部工作,执行效率要高于INSERT+UPDATE。

merge into table_a T1 
using (select 'a' as column_a, 'b' as column_b, 1 as num_1, 2 as num_2 from dual) T2 
on (T1.column_a = T2.column_a and T1.num_1 = T2.num_1) 
when matched then
    update set T1.column_b = T2.column_b, T1.num_2 = T2.num_2, T1.update_date = sysdate
when not matched then
    insert (column_a, column_b, num_1, num_2, update_date)
    values (T2.column_a, T2.column_b, T2.num_1, T2.num_2, sysdate)

3.去掉字符串中的空格

update table_1 set column_1 = trim(column_1)

4.自增id

第一步:建立一个表
create table ContestDB  
(  
   TID  integer,  
   TEAMNUM varchar(50)  not null,  
     MARKNUM varchar(50)    
);  

第二步:设置ID自增
--自定义一个序列  
 create sequence ContestDB_sequence    
       increment by 1 --每次增加几个,我这里是每次增加1  
       start with 1   --从1开始计数  
       nomaxvalue      --不设置最大值  
       nocycle         --一直累加,不循环  
       nocache        --不建缓冲区  
--创建一个触发器          
CREATE TRIGGER ContestDB_trigger  
   BEFORE INSERT ON ContestDB  
   FOR EACH ROW  
   WHEN (new.TID is null) --只有在tid为空时,启动该触发器生成tid号  
begin  
   select ContestDB_sequence.nextval into :new.TID from sys.dual;  
end;  

insert into ContestDB(TEAMNUM,MARKNUM) values('A20007013','A002');   

insert into ContestDB(TEAMNUM,MARKNUM) values('A20007014','A003');  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值