SQL Server视图中的条件计算列

时间:2013-06-29 00:00:04

标签: sql sql-server-2008 view

我正在尝试使用以下查询从现有表Students创建SQL Server 2008视图:

SELECT Std_ID, 
       Name, 
       Sub1, 
       Sub2, 
       IIf ((Sub1 + Sub2)>160, 'A',
       IIf ((Sub1 + Sub2)>100, 'B','C')) AS Legend 
FROM  dbo.Student

它给我一个错误如下。

  

函数参数列表出错:'>'不承认   无法解析查询文本。

我希望视图包含计算列Legend。查询在Query Designer中完美执行,但视图无法创建。请指教。

2 个答案:

答案 0 :(得分:3)

IIF是SQL Server 2012中的一项新功能(http://www.mssqltips.com/sqlservertip/2570/new-logical-functions-in-sql-server-2012-iif-and-choose/)。您无法在2012年进行设计并期望在2008年开始运作。

答案 1 :(得分:2)

试试这个?

   SELECT 
     Std_ID, 
     Name, 
     Sub1, 
     Sub2, 
     Legend = 
           case 
             when Sub1 + Sub2 > 160 then 'A'
             when Sub1 + Sub2 > 100 then 'B'
             else 'C'
           end
    FROM  dbo.Student