选择进入#TempTable

时间:2018-09-11 11:32:30

标签: sql-server-2017

我有类似以下情况的情况

Select x, y, z
from mytable
where x = 1

UNION

Select x, y, z
from mytable2
where x = 1

我想将结果放入#TempTable,然后将结果的数据透视表放入#TempTable2

我尝试过

SELECT * INTO #TempTable FROM (
Select x, y, z
from mytable
where x = 1

UNION

Select x, y, z
from mytable2
where x = 1
)

但是它在')'附近得到不正确的语法 我忘记了我所做的所有其他变化,但没有一个起作用

1 个答案:

答案 0 :(得分:1)

向派生表添加别名。这里我用X是因为我很有想像力

SELECT * 
INTO #TempTable 
FROM 
   (
   Select x, y, z
   from mytable
   where x = 1
   UNION
   Select x, y, z
   from mytable2
   where x = 1
   ) AS X

SQL Server在FROM子句中需要对象的引用。没有别名=没有参考
如果我们使用CTE重写查询,您会看到此信息

WITH myUnion AS
   (
   Select x, y, z
   from mytable
   where x = 1
   UNION
   Select x, y, z
   from mytable2
   where x = 1
  )
SELECT * 
INTO #TempTable 
FROM myUnion