2012-04-14 138 views
3

如何使用orwhen部分的case声明?是否可以在`case`语句的`when`节中使用`或`?

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' 
+0

您的病例陈述实际上没有错。它被称为_simple_ case语句。为了做你所要求的,case语句需要重新编写一个_searched_ case语句(就像@MostyMostacho的出色答案一样)。 – 2012-11-14 16:05:09

回答

4

你可以这样做:

CASE 
    WHEN @TestVal in (1, 2) THEN 'First OR Second' 
    WHEN @TestVal = 3 THEN 'Third' 
    ELSE 'Other' 
END 

Here是官方文档。

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