2011-10-17 58 views
6

我有幾個條件,結果對於那些應該是相同的。我搜索網,發現這樣的東西:TSQL和多時發生的情況?

CASE ProductLine 
    WHEN 'R' THEN 'Road' 
    WHEN 'M' THEN 'Mountain' 
    WHEN 'T' THEN 'Touring' 
    WHEN 'S' THEN 'Other sale items' 
    ELSE 'Not for sale' 
    END 

這很好,但不是我所需要的,對我來說它更像是R,M,T和S都具有相同的結果,並且A,B,C, D例如沒有。我將如何做到這一點?我不能連接OR,或者至少我沒有設法:)。這樣的事情可能嗎?

CASE ProductLine 
    WHEN 'R' OR 'M' OR ... THEN 'Road' 
    ELSE 'Not for sale' 
    END 

回答

7

更改爲"searched" CASE expression。你有一個 「簡單的」 CASE表達式以上

CASE 
    WHEN ProductLine IN ('R', 'M', ...) THEN 'Road' 
    ELSE 'Not for sale' 
END 

從上面的MSDN鏈接:

Simple CASE expression: 
CASE input_expression 
    WHEN when_expression THEN result_expression [ ...n ] 
    [ ELSE else_result_expression ] 
END 

Searched CASE expression: 
CASE 
    WHEN Boolean_expression THEN result_expression [ ...n ] 
    [ ELSE else_result_expression ] 
END 
+1

不錯!順便說一句,爲什麼OR表達式不是布爾表達式就是這種情況 – sll

+0

@sll:SQL Server不支持布爾表達式 – gbn

相關問題