SELECT pro.profile_option_name, pro.user_profile_option_name, lev.level_type TYPE, --lev.level_code, lev.level_name, prv.profile_option_valueFROM apps.fnd_profile_options_vl pro, applsys.fnd_profile_option_values
prv, (SELECT 10001 level_id,
‘Site‘ level_type,
0 level_value,
‘Site‘ level_code, ...
Oracle中,查询前N条记录,可以rownum select * from emp where rownum <= 10 不能对rownum用">" select * from emp where rownum > 5 rownum背后的查询机制: 1 Oracle executes your query. 2 Oracle fetches the first row and calls it row number 1. 3 Have we gotten past row number meets the criteria? If no, then Oracle discards the row, If yes, then Oracle return the row. 4 Oracle fetc...
1、简单连接基本连接语法:SELECT [ALL|DISTINCT]column_name[,expression…]FROM table1_name[,table2_name,view_name,…][WHERE condition][GROUP BY column_name1[,column_name2,…] [HAVING group_condition]][ORDER BY column_name2 [ASC|DESC][,column_name2,…]]; 基本连接查询emp表中所有员工的编号,姓名,工资,部门号,及部门名称方法一: SQL> SELECT empno,ename,sal,emp.deptno,dname FROM emp,dept ...
高级查询(做参考,语句不唯一):一、已知emp表和dept表的结构说明如下:emp员工表(empno员工号/ename员工姓名/job工作/mgr上级编号/hiredate受雇日期/sal薪金/comm佣金/deptno部门编号)dept部门表(deptno部门编号/dname部门名称/loc地点)工资 = 薪金 + 佣金二、查询表数据1.查询至少有一个员工的所有部门。2.查询薪金比“SMITH”多的所有员工。3.查询所有员工的姓名及其直接上级的姓名。4.查询受雇日期早于其直接上级的所有...
一、多表查询所有的连接分析,参考之前随笔:http://www.cnblogs.com/jiangbei/p/7420136.html1.笛卡尔积select last_name, department_name
from employees, departments产生无效的笛卡尔积可以通过where进行过滤 连接查询: 2.等值连接select e.last_name, d.department_name
from employees e, departments d
where e.department_id = d.department_id 3.外连接SQL99的连接语法如下:SELECT table1.column, table2.co...
用sql查询每个分组中amount最大的前两条记录:SELECT *FROM HW trWHERE(SELECT COUNT(*) FROM HW WHERE tr.DEPID=DEPID AND AMOUNT>tr.AMOUNT)< 2ORDER BY DEPID, TR.AMOUNT DESC 应用场景比如:用户每天会修改多次信息,取出每个用户最后一次或者最近N次的修改内容。原文:http://www.cnblogs.com/attlia/p/4282228.html
Oracle SELECT * FROM ( SELECT A.*, ROWNUM RN FROM ( SELECT * FROM TABLE_NAME ) A WHERE ROWNUM <= 40 ) WHERE RN >= 21Mysql 几千上万条数据直接用自带的limit函数就能解决 select * from table limit(m,n);//从m开始取n条数据,索引从0开始表示第一条数据,从m+1条数据开始取那条数据 如果是百万级别的数据就得换写法了 select * from table where (se...
利用下面的SQL就可以查处最近更改的数据。SQL> SELECT ID,NAME,VERSIONS_STARTTIME,VERSIONS_ENDTIME,VERSIONS_OPERATION
FROM TEST VERSIONS BETWEEN TIMESTAMP MINVALUE AND MAXVALUE WHERE
VERSIONS_STARTTIME IS NOT NULL ORDER BY VERSIONS_STARTTIME DESC;通过以上小实验可以看出,VERSIONS_STARTTIME是数据被修改的起始时间,VERSIONS_ENDTIME是数据被修改后新数据的有效时间,也就是VERSIONS_STARTTIME和VERSIONS_ENDTIM...
关于处理小数点位数的几个oracle函数()1. 取四舍五入的几位小数select round(1.2345, 3) from dual;结果:1.2352. 保留两位小数,只舍select trunc(1.2345, 2) from dual;结果:1.23select trunc(1.2399, 2) from dual;结果:1.233.取整数返回大于或等于x的最大整数: SQL> select ceil(23.33) from dual; 结果: 24 返回等于或小于x的最大整数: SQL> select fl...
-------------------------------多表查询----------------------------------------笛卡尔积查询.select*from emp,dept;--结果为64条,emp表有14条,dept表有4条
--别名查询
--改变查询后的结果显示的列名,在字段后面写要显示的列名(注意一定要用双引号括起来,oracle查询中之后这里用到双引号!)select ename "name" ,loc "地点" from emp e ,dept d where e.deptno = d.deptno;--查询出雇员的编号,姓名,部门的编号和名称,地址select...
SELECT A.OWNER, A.OBJECT_NAME, B.XIDUSN, B.XIDSLOT, B.XIDSQN, B.SESSION_ID, B.ORACLE_USERNAME, B.OS_USER_NAME, B.PROCESS, B.LOCKED_MODE, C.MACHINE, C.STATUS, C.SERVER, C.SID, C.SERIAL#, C.PROGRAM FROM ALL_OBJECTS A, V$LOCKED_OBJECT B, SYS.GV_$SESSION C WHERE (A.OBJECT_ID = B.OBJECT_ID) AND (B.PROCESS = C.P...
存储数据关系的时,表结构关系会存在一种树形关系,比如通过一个parentId字段来关联,下面用一个简单的小例子来描述Oracle中的递归查询创建表CREATE TABLE COMMENTS (COMMENTID INTEGER, PARENTID INTEGER, ARTICLEID INTEGER, COMMENTBODY VARCHAR2(500));
插入初始化数据INSERT INTO COMMENTS (COMMENTID, PARENTID, ARTICLEID, COMMENTBODY) VALUES (1, null, 1, ‘第一条评论‘);
INSERT INTO COMMENTS (COMMENTID, PARENTID, ART...
原则一:注意WHERE子句中的连接顺序: ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾. 尤其是“主键ID=?”这样的条件。 原则二: SELECT子句中避免使用 ‘ * ‘: ORACLE在解析的过程中, 会将‘*‘ 依次转换成所有的列名, 这个工作是通过查询数据字典完成的, 这意味着将耗费更多的时间 。 简单地讲,语句执行的时间越短越...
oracle标量子查询和自己定义函数有时用起来比較方便,并且开发者也常常使用。数据量小还无所谓。数据量大,往往存在性能问题。
下面測试帮助大家彻底搞懂标量子查询。SQL> create table a (id int,name varchar2(10));
Table created.
SQL> create table b (id int,name varchar2(10));
Table created.
SQL> insert into a values (1,'a1');
1 row created.
SQL> insert into a values (2,'a2');
1 row created.
SQL> insert into ...
本人在学习Oracle的过程中自己的感悟和网上其他大神的心得,有什么不对的地方希望大家指正!原则一:注意WHERE子句中的连接顺序: ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾. 尤其是“主键ID=?”这样的条件。 原则二: SELECT子句中避免使用 ‘ * ‘: ORACLE在解析的过程中, 会将‘*‘ 依次转换成所有的列名, 这个工...