江西广告网

标题: SQL入门:用集合运算符组合查询 [打印本页]

作者: 猪哥    时间: 2009-2-5 11:12
标题: SQL入门:用集合运算符组合查询
  1、用集合运算符组合查询   UNION、EXCEPT 以及 INTERSECT 集合运算符使您能够将两个或更多外层查询组合成单个查询。执行用这些集合运算符连接的每个查询并组合各个查询的结果。根据运算符不同,产生不同的结果。         2、UNION 运算符   UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。      在下列 UNION 运算符的示例中,查询返回薪水高于 $21,000、有管理责任且工龄少于 8 年的人员的姓名:      (1)       SELECT ID, NAME FROM STAFF WHERE SALARY > 21000    UNION      (2)       SELECT ID, NAME FROM STAFF WHERE JOB='Mgr' AND YEARS 21000    EXCEPT    SELECT ID, NAME FROM STAFF WHERE JOB='Mgr' AND YEARS 21000    INTERSECT    SELECT ID, NAME FROM STAFF WHERE JOB='Mgr' AND YEARS < 8      各个查询的结果在关于 UNION 的一节中列出。这两个使用 INTERSECT 的查询的结果为:      

登录/注册后可看大图
       5、当使用 UNION、EXCEPT 以及 INTERSECT 运算符时,记住下列事项:            运算符的查询选择列表中的所有对应项必须是相容的。有关更多信息,参见 SQL Reference 中的数据类型相容性表。      ORDER BY 子句(如果使用该子句的话)必须放在最后一个带有集合运算符的查询后面。对于每个运算符来说,如果列的名称与查询的选择列表中对应项的名称相同,则该列名只能在 ORDER BY 子句中使用。      在具有相同数据类型和相同长度的列之间进行的运算会产生一个具有该类型和长度的列。针对 UNION、EXCEPT 以及 INTERSECT 集合运算符的结果,参见 SQL Reference 中结果数据类型的规则。    <




欢迎光临 江西广告网 (http://bbs.jxadw.com/) Powered by Discuz! X3.2