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');