0

我创建了一个要用作视图的动态 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)
4

1 回答 1

-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
于 2014-06-26T19:25:52.767 回答