【发布时间】:2017-02-20 21:19:29
【问题描述】:
我想将获得的查询(下面公开,见:代码)转换成一个新表,这样我就可以更轻松地计算和处理数据..
我知道这个问题听起来很愚蠢,但是当我使用时:
SELECT X.*
INTO NewTable
FROM
(
SELECT .... complex query ....
FROM ...
...
) AS X
它向我发送了一条错误消息,我应该如何将我的查询输入到上述代码中..
错误:
消息 156,级别 15,状态 1,第 10 行
关键字“select”附近的语法不正确。
消息 156,级别 15,状态 1,第 54 行
关键字“from”附近的语法不正确。
代码:
SELECT *
INTO Price_to_book_valid
FROM
(
select *
from pricetobook
declare @sql nvarchar(max);
declare @fields nvarchar(max);
set @fields=stuff((select ',['+column0+']'
from dll_ptbv
where column0 not in ('Code','Mnemonic')
group by column0
order by case when column0='Name' then 0 else 3 end
,column0
for xml path('')
,type
).value('.','nvarchar(max)')
,1 ,1 ,'');
set@sql='select'+@fields
+ 'from (select column0
,column1
,sum(rn1*rn2) over(order by rn2) as rn
from (select column0
,column1
,case when column0=''Name'' then 1 else 0 end as rn1
,row_number() over(order by (select null)) as rn2
from dll_ptbv
) as a
) as a
pivot (max(column1) for column0 in ('+@fields+')) as p
order by [Name]';
execute sp_executesql @sql;
【问题讨论】:
-
“它给我发了一条错误信息”,为什么不分享错误信息呢?
-
完成!我真的虽然是这样,对不起
-
您正在混合使用静态 sql 和动态 sql。它不能像这样工作。您必须将动态 sql 的结果执行到表(常规、临时或变量)中,并将该表与静态 sql 一起使用。
-
我如何将我的结果插入到常规、临时或变量表中?感谢您的帮助
-
阅读
insert... exec
标签: sql sql-server tsql