我创建了一个动态SQL查询,我想将其用作视图,但是,查询依赖于使用“DECLARE”语句。我试图在没有'DECLARE'语句的情况下重组它没有成功,但是不能完全正确。我正在使用SQL Server Express 2014,并希望得到任何帮助。
DECLARE @query nvarchar(MAX)
DECLARE @Name nvarchar(MAX)
select @Name = STUFF((SELECT distinct ',' + QUOTENAME(Name)
FROM [dbo].[ObjectView]
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
SET @query = ' SELECT * from
(
select *
from [dbo].[ObjectView]
)t
pivot (MAX(Value) for Name IN (' +@Name+ ')) AS PivotTable'
execute(@query)
答案 0 :(得分:-3)
您可能必须使用XML语法。我生气了。
create view viewname as
select * --< you really should call out the fields, here...
from(
select * --< ...and here.
from ObjectView
t
pivot( MAX( Value ) for Name in(
select distinct QUOTENAME( Name )
FROM ObjectView
FOR XML PATH )
) AS PivotTable