gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 13:13:26 25 4
gpt4 key购买 nike

我有一个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'

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

非常感谢,

最佳答案

首先,您不需要嵌套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时捕获第一个条件。因此,第二个是 ANULL

关于sql - 带有ELSe的嵌套CASE语句(SQL Server),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28740637/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com