2011-03-08 94 views
-1

如何从像查询插入表中的结果:插入到表; with语句

;with foo(foo1,foo2) as (
... 
from ... 
     select from foo 
where ... 
) 
select [1],[2],[3],...,[n] 
from 
(
    select from foo f 
) p 
pivot() pv 
order by row 
+2

对于假设,您留下了很多空缺。 – 2011-03-08 07:26:33

+0

“插入到查询”是什么意思?你的意思是“插入到表中”,或“在第二个查询中使用结果作为表”或其他内容? – Pondlife 2011-03-08 07:46:56

+0

'在表格中插入'该查询的一般类型的结果 – cMinor 2011-03-08 07:53:26

回答

1

这是你想要的东西:

;with foo(foo1,foo2)
as
(...from ... select from foowhere ...)

INSERT INTO #SomeTable
select [1],[2],[3],...,[n]
from(
select from foo f) ppivot() pv order by row

+0

如果这样我得到一个错误:'消息208,级别16,状态1,行2 无效的对象名'#SomeTable'.' – cMinor 2011-03-08 08:05:48

+0

@darkcminor,问题“如何插入表”,如果#SomeTable已经存在,那么上述将工作。如果没有,您可以使用下面的select into方法。 – 2011-03-08 08:47:24

0

答案就近了,解决办法是:

;with foo(foo1,foo2) 
as 
( 
...from ... select from foowhere 
... 
) 
select [1],[2],[3],...,[n] INTO #SomeTable 
from(
    select from foo f 
) ppivot (...) pv 


    order by row