高级SQL @Oracle
1.集合操作
学习oracle
中集合操作的有关语句,
掌握union,union
all,minus,interest的使用,能够描述结合运算,并且能够将多个查询组合到一个查询中去,能够控制行返回的顺序。
包含集合运算的
查询称为复合查询。见表格1-1
表1-1
Operator Returns content
UNION
由每个查询选择的所有不重复的行 并集不包含重复值
UNION ALL
由每个查询选择的所有的行,包括所有重复的行 完全并集包含重复值
INTERSECT
由每个查询选择的所有不重复的相交行 交集
MINUS
在第一个查询中,不在后面查询中,并且结果行不重复 差集
所有的集合运算与等号的优先级相同,如果SQL
语句包含多个集合运算并且没有圆括号明确地指定另一个顺
序,Oracle服务器将以从左到右的顺序计算。你应该使用圆括号来明确地指定带另外的集合运算的INTERSECT (相交) 运算查询中的赋值顺序。
Union
all 效率一般比union高。
1.1.union和union all
UNION(联合)运算
UNION运算返回所有由任
一查询选择的行。用UNION运算从多表返回所有行,但除去任何重复的行。
原则 :
􀂃被选择的列数
和列的数据类型必须是与所有用在查询中的SELECT语句一致。列的名字不必相同。
􀂃联合运算在所有被选择的列上进
行。
􀂃在做重复检查的时候不忽略空(NULL)值。
􀂃IN运算有比UNION
运算高的优先级。
􀂃在默认情况下,输出以SELECT子句的第一列的升序排序。
全联合(UNION
ALL)运算
用全联合运算从多个查询中返回所有行。
原则
􀂃和联合不同,重复的行不被过
滤,并且默认情况下输出不排序。
􀂃不能使用DISTINCT关键字。
使用:
Select
statement union | union all Select statement;
1.2.intersect交集操作
相
交运算
用相交运算返回多个查询中所有的公共行。 无重复行。
原则
𙦦
相关文档:
sql语句查询结果合并union 和union all用法
--合并重复行
select * from A
union
select * from B
--不合并重复行
select * from A
union all
select * from B
按某个字段排序
--合并重复行
select *
from (
select * from A
union
select * from B) AS T
order by 字段名
--不合并重复行
sel ......
最近需要测试一个项目, 需要SQL SERVER 2008, 在微软下载评估版后进行安装
中间发现了种种安装失败的问题,对该过程进行了记录,希望给遇到此类问题的朋友们共同探讨,有所帮助:
1. WINDOWS 2003, WINDOWS 7 新装的时候可行,但是如果有删除后重新安装则无法再次安装
2. 根据网上无数先驱的失败提示, 进行了无数重试, ......
--exec [P_AutoGenerateNumber] 'reception_apply','generate_code','',7
/*
过程说明:生成自动编号
创建时间:2010年1月12日
作者:feng
debug:尚未考虑编号溢出情况
*/
ALTER proc [P_AutoGenerateNumber]
(
@table ......
Introduction
Microsoft SQL Server 2008 R2 is the latest release of SQL Server. This article will introduce the top 10 features and benefits of SQL Server 2008 R2. The “R2” tag indicates this is an intermediate release of SQL Server and not a major revision. However, there are a number o ......