2015-04-29 110 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来生成该语句,唯一的选择是使用存储过程。