SQL SELECT Union SELECT FROM (选择...)
Posted
技术标签:
【中文标题】SQL SELECT Union SELECT FROM (选择...)【英文标题】:SQL SELECT Union SELECT FROM (Select...) 【发布时间】:2013-05-30 14:30:07 【问题描述】:我正在使用视图,但不能使用临时表。是否可以:
SELECT * FROM table1 UNION SELECT * FROM (SELECT * FROM table 3)
我意识到它糟糕的编码习惯选择 *,我只是将其用作示例。任何帮助将不胜感激!
【问题讨论】:
是的,假设 table1 和 table3 的列具有相同的数据类型且顺序相同 需要注意的一点是,除非您尝试删除重复项,否则您可能需要使用 Union All。仅使用联合,您就可以让查询也执行合并连接。 【参考方案1】:该查询解析为:
(SELECT * FROM table1)
UNION
(SELECT * FROM (SELECT * FROM table 3))
在 SQL Server 中,这将返回缺少别名错误。所以,添加别名:
(SELECT * FROM table1)
UNION
(SELECT * FROM (SELECT * FROM table 3) t)
【讨论】:
【参考方案2】:是的。
如果有相同的列数.. 它会工作
或尝试这些代码
SELECT A.COL1, A.COL2 FROM TABLE1 A
UNION
SELECT B.COL1, B.COL2 FROM (SELECT C.COL1, C.COL2 FROM TABLE3)
【讨论】:
【参考方案3】:我想知道为什么你需要将它包装在一个子查询中,是不是可以直接做到这一点
SELECT * FROM table1
UNION
SELECT * FROM table3
【讨论】:
以上是关于SQL SELECT Union SELECT FROM (选择...)的主要内容,如果未能解决你的问题,请参考以下文章
SQL UNION 和 UNION ALL 操作符SQL SELECT INTO 语句SQL CREATE DATABASE 语句