sql-server - 具有计算列的多个案例语句的 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
)
解决方案
来自 BOL:ALTER TABLE computed_column_definition
computed_column_expression 是定义计算列值的表达式。计算列是一个虚拟列,它没有物理存储在表中,而是根据使用同一表中其他列的表达式计算得出的。例如,计算列可能具有以下定义:成本 AS 价格 * 数量。表达式可以是非计算的列名、常量、函数、变量,以及由一个或多个运算符连接的这些的任意组合。表达式不能是子查询或包含别名数据类型。
推荐阅读
- html - 第一个孩子和列表中的列表
- ruby-on-rails - Rails (5.2.0) reCaptcha Devise (4.4.3) 未定义方法 users_url
- scala - 存储为字符串变量时如何执行spark sql多行查询?
- .net - 使用 ngen.exe 时 System.Numerics.Vector.IsHardwareAccelerated = false
- sql - SQL Server:CASE 语句中的 OR 语句
- spring-batch - Spring Batch 将运行哪个配置?
- javascript - 是否可以从 iframe 中重定向到新的来源?
- clojurescript - 在 ClojureScript 中使用 MathJax
- python - 将熊猫系列转换为字符串数组
- swift - 将符合协议的类(或结构)传递给以泛型类型作为参数的函数