子查询的作用:查询条件未知的事物查询条件已知的问题:例如:查询工资为800的员工信息查询条件未知的问题:例如:查询工资为20号部门平均工资的员工信息一个条件未知的问题,可以分解为多个条件已知的问题查询工资比WARD高的员工信息第一:查询WARD的工资? select sal from emp where ename = ‘WARD‘;第二:查询工资比1250高的员工信息? select * from emp where sal > 1250;子查询:select *
from emp
where sal ...
首先是模糊查询的问题,开始时我使用如下条件:select * from user where name like ‘%#value#%‘. 可是怎么也不行,好像还报错了.后来在网上找到了解决方法,就是使用$来代替#号.1>写成: like ‘%$value$%‘ 就可以了,<!-- 模糊查询不能用#,#是用prepareStatement的?插入参数,$是文本替换 -->,2>同时还找到另一个方法,但是那个方法我试了很久,就是不行,方法为: like ‘%‘ || #value# || ‘%‘ , 查询出来的结果居然是全部.后来在网上...
select distinct
l.profile_option_name, v.profile_option_value, fu.user_nameform
applsys.fnd_profile_option_values
v,
apps.fnd_profile_options_vl
l, apps.fnd_user
fu where v.profile_option_id(+) =
l.profile_option_id
and fu.user_id =
v.created_by
and fu.user_name = ‘&user_name...
在oracle中,每一条记录都有一个rowid,rowid在整个数据库中是唯一的,rowid确定了每条记录是oracle中的哪一个数据文件、块、行上。在重复的记录中,可能所有列的内容都相同,但rowid不会相同。使用rowid,SQL语句如下select * from tbl a where rowid not in (select max(b.rowid) from tbl b where a.col1=b.col1 and a.col2 = b.col2)原文:http://www.cnblogs.com/lihaishu/p/4349511.html
--条件比较
/*
=,!=,<>,<,>,<=,>=,
any,some,all
is null,is not null
between x and y
in(list),not in(list)
exists(sub-query)
like _ ,%,escape ‘\‘ _\% escape ‘\’
*/--any some 只要满足其中的任何一个即可
SELECT E.ENAME ,E.JOB,E.SAL FROM EMP E WHERE E.SAL > ANY(1000,2000,3000)
SELECT E.ENAME ,E.JOB,E.SAL FROM EMP E WHERE E.SAL > SOME(1000,2000,3000)--all 满足所有的
SELECT E.ENAME ,E....
select t.segment_name, t.segment_type, sum(t.bytes / 1024 / 1024) AS MBfrom dba_segments twhere t.segment_type=‘TABLE‘ and (t.segment_name like ‘%yyy%‘ or t.segment_name like ‘%xxx%‘)group by OWNER,t.segment_name, t.segment_type order by MB DESC 快速清空表数据保留表结构truncate table xxx drop storage原文:https://www.cnblogs.com/nsw2018/p/13035240.html
select * from (select * from <table> order by <key> desc) where rownum=1; select * from (select * from <table> order by <key>) where rownum=1;原文:http://www.cnblogs.com/FindRui/p/4126346.html
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...