当前位置:  开发笔记 > 数据库 > 正文

可以在UNION [ALL]中使用SELECT INTO子句吗?

如何解决《可以在UNION[ALL]中使用SELECTINTO子句吗?》经验,为你挑选了3个好方法。

在SQL Server中,这将从Customers表中插入100条记录到tmpFerdeen: -

SELECT top(100)*
INTO tmpFerdeen
FROM Customers

是否可以跨UNION ALL SELECT执行SELECT INTO: -

SELECT top(100)* 
FROM Customers
UNION All
SELECT top(100)* 
FROM CustomerEurope
UNION All
SELECT top(100)* 
FROM CustomerAsia
UNION All
SELECT top(100)* 
FROM CustomerAmericas

不太确定在哪里添加INTO子句.



1> Chris Van Op..:

这适用于SQL Server:

SELECT * INTO tmpFerdeen FROM (
  SELECT top 100 * 
  FROM Customers
  UNION All
  SELECT top 100 * 
  FROM CustomerEurope
  UNION All
  SELECT top 100 * 
  FROM CustomerAsia
  UNION All
  SELECT top 100 * 
  FROM CustomerAmericas
) as tmp


"as tmp"有什么意义?
@Dave,petric:在SQL Server中,需要为临时表指定名称.就这样.除了使SQL语句成为有效语句之外,tmp不提供任何其他功能.例如,在Oracle SQL上,这是可选的.

2> Martin Smith..:

您根本不需要派生表.

刚刚放在第一个INTO之后SELECT

SELECT top(100)* 
INTO tmpFerdeen
FROM Customers
UNION All
SELECT top(100)* 
FROM CustomerEurope
UNION All
SELECT top(100)* 
FROM CustomerAsia
UNION All
SELECT top(100)* 
FROM CustomerAmericas


我不同意-尽管以上答案也是正确的,但接受的答案意图更明确
这对我来说不是上面的解决方案

3> user1006743..:
SELECT * INTO tmpFerdeen FROM 
(SELECT top(100)*  
FROM Customers 
UNION All 
SELECT top(100)*  
FROM CustomerEurope 
UNION All 
SELECT top(100)*  
FROM CustomerAsia 
UNION All 
SELECT top(100)*  
FROM CustomerAmericas) AS Blablabal

这种"Blablabal"是必要的

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有