gpt4 book ai didi

SQL 的 Fallthrough CASE 语句

转载 作者:行者123 更新时间:2023-12-02 06:45:03 27 4
gpt4 key购买 nike

在C#中我们可以写

switch(num)
{
case 0:
case 1: // do something; break;
case 2:
............
...........
case n: // do something break;
default: //do something; break;
}

我怎样才能在 SQL SERVER 中实现类似的东西?

我说的不是SQL SERVER中CASE的简单写法。我说的是,如果我需要在 2 个或更多案例中执行与我在 C# 代码片段中展示的相同的操作王,如何在 SQL 的案例中执行类似的操作?

编辑:

我已经从这里得到了一些不错的答案。我怎样才能转换以下内容

SELECT CASE 
WHEN [A]= num THEN '-' ELSE '' END [A],
CASE WHEN [B]= num THEN '-' ELSE '' END [B],
CASE WHEN [C]= num THEN '-' ELSE '' END [C],
CASE WHEN [D]= num THEN '-' ELSE '' END [D]

...变成类似这样的东西:

SELECT CASE WHEN [A], 
CASE WHEN [B],
CASE WHEN [C],
CASE WHEN [D] = num THEN '-' ELSE '' END [A] or [B] or [C] or [D]

实际上我在 PIVOT 查询中需要这个。昨晚我解决了这个问题。但我不相信这种写作方式。因为每次,我都在做同样的事情。那么有没有更好的方式来呈现这一点?

最佳答案

您可能正在寻找这个。

SELECT
CASE
WHEN (num BETWEEN 0 AND 2) THEN 'Between 0 and 2'
WHEN (num = 3) THEN '3'
ELSE 'Something else'
END
...

More information on CASE from MSDN.

关于SQL 的 Fallthrough CASE 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1598486/

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