-- not in 的替代写法select col from table1 where col not in(select col from table2); select col,table2.col temp_colfrom table1 left join table2 on table1.col = table2.colwhere temp_col is null; -- in 的替代写法select col from table1 where col in (select col fr
ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法 ROW_NUMBER() OVER(partition by col1 order by col2) 表示根据col1分组,在分组内部根据col2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内是连续且唯一的). 举例: SQL> DESC T1; Name Null? Type ---------------------
在Oracle中,将一张表的数据复制到另外一个对象中.通常会有这两种方法:insert into select 和 select into from. 前者可以将select 出来的N行(0到任意数)结果集复制一个新表中,后者只能将"一行"结果复制到一个变量中.这样说吧,select into是PL/SQL language 的赋值语句.而前者是标准的SQL语句. 做一个简单测试,我们就可以很容易地看出两者的差别. 首先,我们创建两个表,一个作为源表,一个作为目标表. create
spl> select * from emp where dates between to_date('2007-06-12 10:00:00', 'yyyy-mm-dd hh24:mi:ss') and to_date('2007-06-12 10:00:00', 'yyyy-mm-dd hh24:mi:ss') 当省略HH.MI和SS对应的输入参数时,Oracle使用0作为DEFAULT值.如果输入的日期数据忽
oracle 中随机取一条记录的两种方法 V_COUNT INT:=0; V_NUM INT :=0; 1:TBL_MYTABLE 表中要有一个值连续且唯一的列FID BEGIN SELECT COUNT(*) INTO V_COUNT FROM TBL_MYTABLE; SELECT TRUNC(DBMS_RADOM.VALUE(1,V_COUNT+1)) INTO V_NUM FROM DUAL; SELECT * FROM TBL_MYTABLE T WHERE T.FID=V_NUM;