游标 cursor
使用游标
--定义游标
DECLARE 游标名 CURSOR
FOR
SELECT 语句 #此处必须是SELECT 语句
--声明后 需要打开游标以供使用
OPEN 游标名;
--填有数据的游标,根据需要去除数据
FETCH...FROM 游标名
--FETCH指定检索什么数据,即所需的列,并指定检索出来的数据存储在什么地方
FETCH cur INTO v_cur;
--记得关闭游标
CLOSE 游标名;
函数
PIVOT
oracle 列转行
--用法
pivot(
sum(/*行转列后列的值*/)
for(/*需要转换为行的列*/) in (
'date1' as 列名1,
'date2' as 列名2,
...
)
)
NVl
空字符转换
--如果dataisnull is null 那么就替换为 0
NVL(dateisnull,0)
exists 与 in
--当数据量table1 << table2 ,exists 查询效率高
select from table1 where exists (select 1 from table2 where table1.a = table2.a)
--当数据量table2 << table1 , in 效率高
select from table1 where table1.a in (select table2.a from table2)