SQL 问题 - CASE WHEN

标签 sql sql-server

任何人都可以发现这个 case when 语句的问题吗? SQL Server 似乎不喜欢它,我无法发现问题!

SELECT CASE @Next_Insp_Date
    WHEN @Purpose_ID = 1 THEN DATEADD(m, 6, GETDATE()) AS @Next_Insp_Date
    WHEN @Purpose_ID = 2 THEN DATEADD(m, 12, GETDATE()) AS @Next_Insp_Date
    ELSE @Next_Insp_Date
END AS @Next_Insp_Date

最佳答案

一个case语句只能有一个别名。像这样尝试:

SELECT CASE 
    WHEN @Purpose_ID = 1 THEN DATEADD(m, 6, GETDATE()) 
    WHEN @Purpose_ID = 2 THEN DATEADD(m, 12, GETDATE())
    ELSE --some other value here
END AS Some_alias_name -- here it is the alias

我不知道 @Next_Insp_Date 包含什么,但可以肯定它在错误的位置。在 else 语句中你应该有另一个值

如果您想从 @Next_Insp_Date 中检索值,那么它应该放在 else 语句中。

关于SQL 问题 - CASE WHEN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43045647/

相关文章:

sql - 使用 pgAdmin4 运行 psql

SQL Server 添加索引而不删除表

sql - 从日期范围生成天数

sql - 在论坛中发布 SQL 代码是一个坏主意吗?

mysql - 如何在红移中不同表的多个 JOIN 语句中执行 case 条件?

sql-server - 如何在sql server中获取字符串的最后一个字符

使用 COUNT 进行 SQL 查询清理

不使用 DSN 时出现 R ODBC nanodbc 错误

c# - 在一个事务中对多个相关表使用 SqlBulkCopy

php - 拉维 4 : validation unique (database) multiple where clauses