一个触发器
晚上帮朋友实现个很简单的出发功能,有两张表 A ,B当在A表中插入数据时候,同步的在B表中插入相同的数据,触发器语法如下:create or replace trigger tg_insert_emp1after insert on scott.emp1for each rowbegininsert into emp2 values(:new.empno,:new.sal);end;这里有个要注意的地方。。A 与B的字段必须一样。。[@more@]
利用ROWNUM来实现的功能
有两张表T: A B 1 3 2 2 3 5 4 4 S:A B 1 3 1 3 3 5 3 5现在要实现一个功能 ,查询出以下的结果A B1 32 33 54 5利用ORACLE中的ROWNUM来实现select t.a,s.b from(select a,rownum row from t) t,(select b,rownum row from s) s where t.row=s.row;其实该语句就是将ROWNUM 在表中变成一个实体化的列该应用是在写SQL应用的时候出现的,这个只是个测试案例。不过发现ROWNUM效率偏慢。。[@more@]
一个SQL语句的优化
select to_char(tt.yearmonth,'yyyy') year,to_char(tt.yearmonth,'mm') month,tt.yearmonth,max(total) over (partition by to_char(tt.yearmonth,'yyyy') order by yearmonth)from(select trunc(hiredate,'mm') yearmonth,max(sal) total from empgroup by trunc(hiredate,'mm') order by trunc(hiredate,'mm')) tt[@more@]
first_value和last_value的用法
first_value和last_value的用法:返回结果集中排在第一位和最后一位的值.SQL> desc studentName Type Nullable Default Comments ---- ------------ -------- ------- -------- NO VARCHAR2(5) NAME VARCHAR2(25) KM VARCHAR2(25) Y CJ NUMBER Y SQL> select * from student t;NO NAME KM CJ----- ---------