带有ELSe的嵌套CASE语句(SQL Server)

InTheWorldOfCodingApplications

我有一个CASE语句,如下所示

CASE 
       WHEN A IS NULL 
       THEN CASE
                 WHEN B IN ('C','D') THEN NULL
                 WHEN X NOT IN ('C','D') THEN Z
                 End
                 ELSE SOMETHING_ELSE -- Want to get here When 'A' IS NOT NULL
                 END AS 'Result'

当First CASE不正确,即“ A”不为NULL时,我想进入ELSE部分。任何人都可以建议我是否错误地嵌套了它们?没有得到正确的结果。

非常感谢,

戈登·利诺夫

首先,您不需要嵌套case语句。只需使用一种情况:

select (CASE WHEN A IS NULL AND B IN ('C', 'D') THEN NULL
             WHEN A IS NULL AND X NOT IN ('C','D') THEN Z
             WHEN A IS NOT NULL THEN SOMETHING_ELSE
        END) as Result

注意,当A IS NULL但前两个条件不能满足,则返回值将是NULL

因为case语句是按顺序求值的,所以这样写起来更简单:

select (CASE WHEN A IS NOT NULL THEN SOMETHING_ELSE
             WHEN B IN ('C', 'D') THEN NULL
             WHEN X NOT IN ('C', 'D') THEN Z
        END) as Result

第一个条件捕获何时A不为NULL因此,后两个是whenANULL

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

选择带有CASE语句的SQL Server 2008 R2

来自分类Dev

SQL Server:带有语法

来自分类Dev

带有OR的SQL CASE语句?

来自分类Dev

SQL Server Case语句和聚合功能

来自分类Dev

具有多条件语法的SQL Server CASE语句

来自分类Dev

SQL Server:长CASE语句的替代方法

来自分类Dev

尝试在SQL Server中使用CASE语句

来自分类Dev

选择带有CASE语句的SQL Server 2008 R2

来自分类Dev

有关SQL Server 2005中的嵌套CASE语句的问题

来自分类Dev

SQL Server 2005中带有CASE WHEN语句的IS NULL

来自分类Dev

sql server类似带有char列的语句

来自分类Dev

SQL Server:case语句中的昂贵查询

来自分类Dev

具有多条件语法的SQL Server CASE语句

来自分类Dev

SQL Server中带有表达式的CAST语句

来自分类Dev

SQL Server上带有IN的WHERE子句中的CASE语法

来自分类Dev

SQL Server TVP与Where / Case语句合并

来自分类Dev

嵌入在In子句中的SQL Server case语句

来自分类Dev

SQL Server if else语句无法正常运行

来自分类Dev

尝试在SQL Server中使用CASE语句

来自分类Dev

SQL Server:WHERE子句中具有IN条件的CASE语句

来自分类Dev

SQL Server 中使用 Case 语句的嵌套 If 语句

来自分类Dev

从 case 语句中添加行 - SQL Server

来自分类Dev

在 SQL Server 中使用嵌套的 CASE 语句

来自分类Dev

动态添加case语句sql server

来自分类Dev

字符串拆分或其他类似的带有 case 语句的 SQL Server 函数

来自分类Dev

Sql Server 奇怪的 CASE 语句

来自分类Dev

带有连接列的 SQL Server CASE

来自分类Dev

日期时间 SQL Server 的 IF ELSE 语句

来自分类Dev

在总和中嵌套 Case 语句 - SQL Server