如何直接在新表中存储SQL set操作的结果?

时间:2013-11-27 02:04:26

标签: sql sql-server

我对SQL很新。我正在使用SQL Server 2012.我想将设置操作的结果(例如INTERSECT)存储在新表中。我是以间接的方式完成此操作:将set操作结果存储在视图中,然后使用SELECT * INTO myNewTable FROM myView将视图的内容复制到我的新表中。如何在不将视图作为中间步骤的情况下执行此操作?

谢谢!

-Rohan。

1 个答案:

答案 0 :(得分:2)

几个不需要创建中间视图的选项。例如,子查询:

SELECT * INTO dbo.myNewTable FROM 
(
  SELECT a,b,c FROM dbo.t1 
  INTERSECT 
  SELECT a,b,c FROM dbo.t2
) AS x;

common table expression (CTE)

;WITH x AS
(
  SELECT a,b,c FROM dbo.t1 
  INTERSECT 
  SELECT a,b,c FROM dbo.t2
)
SELECT * INTO dbo.myNewTable FROM x;