SQL 中 Union 的使用示例
sql union有什么用?
SQL联合用法总结:
UNION运算符将多个SELECT语句的结果组合成一个结果集。
(1)使用UNION时必须满足以下条件:
A:所有查询必须具有相同的结构(即查询中列的数量和顺序必须相同) )。
B:对应列的数据类型可以不同,但必须兼容(所谓兼容是指两种类型之间可以进行隐式转换,隐式转换会报错无法执行)。您还可以使用显式转换为相同的数据类型。
(当数据类型不同时,根据数据类型优先规则确定结果数据类型s。如果类型相同但精度、小数位数或长度不同,则根据用于组合表达式的规则确定结果数据类型。相同的规则来确定结果)(参考MSDN:数据类型优先级)
C:如果是XML数据类型,则列必须是等效的(所有列必须键入为XML模式,或者无类型),如果有类型,则这些列必须被类型化为同一 XML 架构集合。
(2)UNION结果集
A:UNION后的结果集的列名与第一个SELECT语句的结果集的列名相同。来自另一个 SELECT 语句的结果集列名将被忽略。
B:UNION默认删除结果集中的重复记录。如果使用ALL关键字,则结果集中将保留所有记录(重复的记录将被保留)
(3)注意事项
A:Transact-SQL语句中可以使用多个UNION运算符
B:使用 UNION 运算符的每个 SELECT 语句不能包含自己的 ORDER BY 或 COMPUTE 子句。相反,您只能在最终组合结果集中(即最后一个 SELECT 语句之后)使用 ORDER BY 或 COMPUTE 子句。
C:可以使用 UNION 运算符在每个 SELECT 语句中使用 GROUP BY 和 HAVING 子句。
D:默认情况下,SQL Server 2005 从左到右计算包含 UNION 运算符的语句。您可以使用括号来指定计算顺序。
MSDN 示例如下
例如,以下语句是不等价的:
/* First陈述。 */ SELECT * FROM TableA UNION ALL ( SELECT * FROM TableB UNION SELECT * FROM TableC ) GO /* 第二条语句。 */ (SELECT * FROM TableA UNION ALL SELECT * FROM TableB ) UNION SELECT * FROM TableC) GO
看完这篇文章相信你对“Union使用示例”有了一定的了解in SQL》,如果您想了解更多相关知识,请e 关注行业信息渠道。感谢您的阅读!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > SQL 中 Union 的使用示例