2011-10-17 10 views
6

मेरे पास कई स्थितियां हैं और परिणाम उनके लिए समान होना चाहिए। मैं शुद्ध खोज की है और इस तरह सामान मिला:टीएसक्यूएल और केस जब कई बार के साथ?

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 

यह अच्छा है, लेकिन नहीं है कि मैं क्या जरूरत है, मेरे लिए और अधिक की तरह आर, एम, टी और एस सब एक ही परिणाम और ए, बी, सी है, उदाहरण के लिए डी नहीं है। यह मैं कैसे करूंगा? मैं OR से कनेक्ट नहीं कर सकता, या कम से कम मैं प्रबंधन नहीं किया :)। ऐसा कुछ हो सकता है?

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

उत्तर

7

"searched" CASE expression पर बदलें।

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

अच्छा: आप ऊपर MSDN लिंक से

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

के ऊपर एक "सरल" मामला अभिव्यक्ति है! बीटीडब्लू, क्यों या अभिव्यक्ति बूलियन अभिव्यक्ति नहीं है – sll

+0

@ एसएल: एसक्यूएल सर्वर बूलियन अभिव्यक्ति का समर्थन नहीं करता है – gbn