2011-10-17 31 views
6

Tôi có một số điều kiện và kết quả cho những điều đó phải giống nhau. Tôi đã tìm kiếm trên mạng và tìm thấy nội dung tương tự như sau:TSQL và trường hợp khi có nhiều con gà?

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 

Thật tuyệt, nhưng không phải những gì tôi cần, cho tôi giống R, M, T và S đều có cùng kết quả và A, B, C, D ví dụ không có. Làm thế nào tôi sẽ làm điều này? Tôi không thể kết nối với OR, hoặc ít nhất tôi không quản lý được :). Một cái gì đó như thế này có thể?

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

Trả lời

7

Thay đổi thành "searched" CASE expression. Bạn có một "đơn giản" biểu TRƯỜNG HỢP trên

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

Từ liên kết MSDN trên:

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

Nice! BTW, Tại sao OR biểu thức không phải là biểu thức boolean là trường hợp như vậy – sll

+0

@ sll: SQL Server không hỗ trợ biểu thức boolean – gbn

Các vấn đề liên quan