易截截图软件、单文件、免安装、纯绿色、仅160KB

ORACLE中的子查询

“子查询”就是查询中嵌套着另一个查询,也即通过SELECT语句的嵌套使用形成子查询。当我们不知道特定的查询条件时,可以用子查询来为父查询提供查询条件以获得查询结果。
ORACLE中常见的子查询有下面几类:
A、单行子查询(Single-row subqueries)。
B、多行子查询(Multirow subqueries)。
C、内部视图型子查询(Inline views)。
D、多列子查询(Multiple-column subqueries)。
在我们继续详细讨论子查询之前,先看看写子查询的一些特别要注意的地方:
A、子查询必须放在括号内。
B、子查询也必须放在比较操作符号的右边。
C、子查询最多可以嵌套到255级。
子查询中不能使用ORDER BY子句,即ORDER BY必须位于查询的最外层。
一、单行子查询(Single-Row Subqueries)
单行子查询并不是最后输出的结果只能返回一行,而是指子查询只能返回一行。
有一条规则我们必须记住:
当我们用“等于”比较操作符把子查询和父查询嵌套在一起时,父查询期望从子查询那里只得到一行返回值。
例一:
   SELECT ename,deptno,sal from EMP
   WHERE deptno=(SELECT deptno from dept
WHERE loc=’New York’);
在这个例子中,如果子查询“SELECT deptno from dept WHERE loc=’New York’”只返回一行,则这个例子能正确运行,否则将出错。原因见前面规则。
其它一些表明是单行子查询的比较操作符有“>,>=,<,<=,<>”。
 
二、多行子查询(Multirow Subqueries)
多行子查询,意味着子查询返回的结果子集可以是多行。因此,我们通常用集合比较操作符(如:IN, NOT IN)把父查询和子查询连接起来。  
例二:
    SELECT ename,job,sal from EMP
    WHERE deptno in ( SELECT deptno from dept
WHERE dname LIKE ‘A%’);
三、多列子查询(Multiple-Column Subqueries):
前面两个例子中,主查询的WHERE子句中都只有一列。然而,有时需要主查询处理多列。例如,为了得到每个部门工资最高的员工信息,可以使用下面的例子。 
例三:
    SELECT deptno,ename,job,sal from EMP
    WHERE (deptno,sal) IN (SELECT deptno,MAX(sal) from EMP
              


相关文档:

MySQL与Oracle数据类型转换


MySQL Data Type
Oracle Data Type
BIGINT
NUMBER(19, 0)
BIT
RAW
BLOB
BLOB, RAW
CHAR
CHAR
DATE
DATE
DATETIME
DATE
DECIMAL
FLOAT (24)
DOUBLE
FLOAT (24)
DOUBLE PRECISION
FLOAT (24)
ENUM
VARCHAR2
FLOAT
FLOAT
INT
NUMBER(10, 0)
INTEGER
NUMBER(10, 0)
LONGBLOB
BLOB, RAW
LONGTEX ......

解读Oracle计划:Solaris将被拯救 MySQL继续前途未卜


【51CTO.com独家特稿】面对惊慌的客户和广泛质疑的媒体,Oracle官方最近终于出榜安民,那便是一个以“SUN CUSTOMERS ,Oracle Plans To:”为大标题的广告。直译过来便过来可知道,Oracle将要加大SPARC和Solaris的投入了,而大老板埃里森也向IBM硬件下了战书,声称Oracle将最终赢得这场竞争……
&n ......

SQLServer和Oracle的常用函数对比

SQLServer和Oracle的常用函数对比
  1.绝对值
  S:select abs(-1) value
  O:select abs(-1) value from dual
  2.取整(大)
  S:select ceiling(-1.001) value
  O:select ceil(-1.001) value from dual
  3.取整(小)
  S:select floor(-1.001) value
  O:select floor(-1.001) valu ......

sqlserver移植为Oracle笔记

Oracle笔记
l         关于TRUNC函数
   SELECT
   RELATED_ID ,
      DOC_ID ,
      CAT_ID ,
      CAT_CODE ,
      RELEASE_DATE ,
&n ......

Oracle中NVL2 和NULLIF的用法

NULL指的是空值,或者非法值。
NVL (expr1, expr2)->expr1为NULL,返回expr2;不为NULL,返回expr1。注意两者的类型要一致
NVL2 (expr1, expr2, expr3) ->expr1不为NULL,返回expr2;为NULL,返回expr3。expr2和expr3类型不同的话,expr3会转换为expr2的类型
NULLIF (expr1, expr2) ->相等返回NULL,不等返回ex ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号