我想插入一个工会,有人建议:
SELECT x INTO ##temp
FROM (SELECT x FROM y UNION ALL SELECT x FROM z) UN
Run Code Online (Sandbox Code Playgroud)
它有效,但是什么UN?不幸的是,谷歌搜索"t-sql un"并不是很有帮助:p
注意:我发现你可以做,SELECT x INTO ##temp FROM y UNION ALL SELECT x FROM b但我仍然很好奇UN.
编辑:好的,所以它是一个别名,但为什么需要这个工作?如果我删除它,它将不会执行.
Joh*_*ers 10
它不是关键字.这是别名.可以在那里使用任何字符串而不是"UN".
更完整的形式是:
SELECT x INTO ##temp
FROM (SELECT x FROM y UNION ALL SELECT x FROM z) AS UN
Run Code Online (Sandbox Code Playgroud)
@Tomalak是对的.在这种情况下,别名是必需的.没有别名,错误是:
消息102,级别15,状态1,行2'''附近的语法不正确.
我稍微简化了查询并使用了AdventureWorks数据库:
SELECT * INTO ##temp
FROM (SELECT * FROM Person.Address)
Run Code Online (Sandbox Code Playgroud)
这会收到上面的错误.相反:
SELECT * INTO ##temp
FROM Person.Address
Run Code Online (Sandbox Code Playgroud)
工作得很好.另一种选择是
;WITH UN AS
(
SELECT * FROM Person.Address
)
SELECT * INTO ##temp
FROM UN
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
858 次 |
| 最近记录: |