在C#中,我们可以写SQL的下通CASE语句
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 CASE中执行类似的操作?
编辑:
我得到了一些很好的答案,从这里开始了。我如何转换以下
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查询。昨晚我解决了这个问题。但我不相信这种写作方式。因为每次我都在做同样的事情。那么有没有更好的方式来呈现这个?
不知道你在说什么行为。你得到的switch语句(一旦我们添加了编译所需的中断)直接映射到一个简单的TSQL case语句。尝试提供一些编译的C#以及想要复制的行为。 – 2009-10-21 02:53:37
请注意,C#FWIW不支持贯穿性。 – 2009-10-21 02:54:43
我知道这有点晚,但是你可以在when语句中使用像'or'这样的逻辑表达式来引入由同一操作处理的多个条件。 – deutschZuid 2012-01-18 00:42:26