在case语句的when部分中可以使用“or”吗?

3
如何在case语句的when部分中使用or
DECLARE @TestVal INT
SET @TestVal = 1
SELECT
CASE @TestVal
WHEN 1 THEN 'First'--- this line
WHEN 2 THEN 'First'--- and this line
WHEN 3 THEN 'Third'
ELSE 'Other'
END

我希望使用以下方法代替上面的两行代码:

when 1 or 2 then 'First'

你的 case 语句实际上没有问题。它被称为“简单”case语句。要做你所要求的事情,case语句需要重新编写成“搜索”case语句(就像@MostyMostacho的出色回答一样)。 - coge.soft
2个回答

4
你可以这样做:
CASE 
    WHEN @TestVal in (1, 2) THEN 'First OR Second'
    WHEN @TestVal = 3 THEN 'Third'
    ELSE 'Other'
END

这里是官方文档。


1
SELECT
CASE 
WHEN @TestVal = 1 or @TestVal = 2 THEN 'First'
...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接