首页 > 解决方案 > 具有计算列的多个案例语句的 IIF

问题描述

我正在尝试将其添加为公式(计算列),但我收到一条错误消息,指出它无效。

谁能看出下面的公式有什么问题?

IIF
(
    select * from Config where Property = 'AutomaticExpiry' and Value = 1,
    case when [ExpiryDate] IS NULL OR sysdatetimeoffset()<[ExpiryDate] then 1 else 0 end,
    case when [ExpiryDate] IS NULL then 1 else 0 end
)

标签: sql-servertsql

解决方案


来自 BOL:ALTER TABLE computed_column_definition

computed_column_expression 是定义计算列值的表达式。计算列是一个虚拟列,它没有物理存储在表中,而是根据使用同一表中其他列的表达式计算得出的。例如,计算列可能具有以下定义:成本 AS 价格 * 数量。表达式可以是非计算的列名、常量、函数、变量,以及由一个或多个运算符连接的这些的任意组合。表达式不能是子查询或包含别名数据类型。


推荐阅读