Oracle常用语句以及常用函数总结
常用语句
create table table_name(
id as varchar(10)
);
insert into table_name values('1');
insert into table_name(column_name1,column_name2,column_name3.....)values(value1,value2,value3.....);
alter table table_name add column column_name varchar(255);
delete from table_name where id='01';
update table_name
set id = '1'
where id = '1.0';
update table_name
set id =
case
when id='1.0' then '1'
else null
end;
alter table table_name cloumn modify_before_column_name to modify_after_column_name;
alter table table_name rename old_table_name to new_table_name;
select * from dual;
常用函数
select to_char(sysdate,'yyyy-mm-dd') from dual;
select to_date('2022-01-01 22:32:10','yyyy-mm-dd hh24:mi:ss') from dual;
select extract(year from sysdate) as year from dual;
select decode(column_name,'1.0','1','or else is null') from dual;
case
when xx then xx
else null
end as 'xx';
select * from emp where regexp_like(name,'张三|李四');
select regexp_replace('张.?','张老三') from emp;
select regexp_substr('abc 123456 cd','12' ) regexp_substr from dual;
select regexp_instr('12.345', '\.') regexp_instr from dual;
select regexp_count('welcome','\w') from dual;
select * from test where name like '%张%';
select nvl(name,name2) from test;
select nvl2(v1,v2,v3) from test;
select nvl2(1, sysdate-(sysdate-1/24/60), sysdate) from dual;
select nvl2(null,sysdate-(sysdate-1/24/60), sysdate) from dual;
with
temp as (select * from dual),
temp2 as (select * from temp)
select * from temp2;
WITH TEMP AS(
SELECT DATE1,DIAG_NAME||'---'||PID AS DIAG_NAME_PID,ROW_NUMBER() OVER(PARTITION BY DATE1
ORDER BY TO_NUMBER(PID) DESC) AS RN FROM PALAN.IN_DIAG_TOP50
)
SELECT * FROM (SELECT DATE1,DIAG_NAME_PID,RN FROM TEMP)PIVOT(MAX(DIAG_NAME_PID) FOR RN IN (
'1' AS "1",
'2' AS "2",
'3' AS "3",
'50' AS "50"
));