从局部变量创建视图

时间:2015-07-16 14:21:50

标签: sql-server

是否可以按照以下代码创建视图?

Declare @colPivot varchar(Max)
Select @colPivot = STUFF((Select Distinct TOP 100 Percent ',' + quotename(CONVERT(VARCHAR(255),RTRIM(LTRIM(t2.FieldID))) + 'PreValue')
                From [dbo].[tbldocument] as t2 Inner join [dbo].[tbldocument] as t3 on t3.DocumentID=t2.DocumentID 
                where t2.BatchClassID=t3.BatchClassID
                Order by ',' + quotename(CONVERT(VARCHAR(255),RTRIM(LTRIM(t2.FieldID))) + 'PreValue')
                For xml path(''), TYPE
            ).value('.', 'NVARCHAR(MAX)'),1,1,'')

Print @colPivot

Declare @query varchar(Max)

Set @query = 'Select * From (Select

                            [DocumentID],
                            [ClassID],
                            [PreValue],
                            convert(varchar(255),[FieldID]) + ''PreValue'' as Fieldwise

                            From 
                                [TestDB].[dbo].[tbldocument]
                            )A
            Pivot(max([PreValue]) For Fieldwise  IN ('+ @colPivot +'))p'

PRINT (@query)
Exec (@query)

我还有5个这样的代码块,每个代码块返回4列,我想为每个代码块创建视图,这样我就可以连接所有6个视图并获得4 * 6列的常见结果。

我尝试将上面的代码块放在Create View语句中,但它已经抛出了错误。

谢谢,Inder

0 个答案:

没有答案