2015-04-29 107 views
-1
create view Vw_sub 

as 

DECLARE 
@cols AS NVARCHAR(MAX), 
@query AS NVARCHAR(MAX) 
select 

@cols = STUFF((SELECT ',' + QUOTENAME(subjectname) 
        from Vw_Subtem where ClassID=1 and SchoolId=4 and SectionId=1 
        group by subjectname, id 
        order by id 
      FOR XML PATH(''), TYPE 
      ).value('.', 'NVARCHAR(MAX)') 
     ,1,1,'') 


set @query = 'SELECT ' + @cols + ' from 
      (
       select subjectname 
       from Vw_Subtem 
      ) x 
      pivot 
      (
       max(subjectname) 
       for subjectname in (' + @cols + ') 
      ) p ' 

execute(@query) 
go 

我有一個錯誤關鍵字「‘聲明’附近有語法錯誤。」當時創建視圖Plz給我一個解決方案如何創建此視圖SQL Server 2008中樞軸視圖

回答

1

視圖必須是單個SELECT語句。您可以在CREATE VIEW for SQL Server 2008的定義中閱讀此內容。

更正式的語法是:

CREATE VIEW [ schema_name . ] view_name [ (column [ ,...n ]) ] 
[ WITH <view_attribute> [ ,...n ] ] 
AS select_statement 
[ WITH CHECK OPTION ] [ ; ] 

你可以看到你創建視圖的select_statement中。您可以提供任何選擇語句,而不再提供。

如果您需要動態SQL來生成該語句,唯一的選擇是使用存儲過程。