SQL Server 视图中的条件计算列

Posted

技术标签:

【中文标题】SQL Server 视图中的条件计算列【英文标题】:Conditional Computed Columns in SQL Server Views 【发布时间】:2013-06-29 00:00:04 【问题描述】:

我正在尝试使用以下查询从现有表 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。查询在查询设计器中完美执行,但无法创建视图。请指教。

【问题讨论】:

【参考方案1】:

IIF 是 SQL Server 2012 中的一项新功能 (http://www.mssqltips.com/sqlservertip/2570/new-logical-functions-in-sql-server-2012-iif-and-choose/)。你不能在 2012 年设计并期望它在 2008 年发挥作用。

【讨论】:

【参考方案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

【讨论】:

以上是关于SQL Server 视图中的条件计算列的主要内容,如果未能解决你的问题,请参考以下文章