2010-01-05 5 views
8

वहाँ जब यह एक सरणी में एक मामला जांच करने के लिए एक रास्ता है:एसक्यूएल केस [कॉलम] जब ('case1', 'case2') तो 'ओप्स' अंत?

SELECT CASE [Option] WHEN IN (1, 3, 99) THEN 'Wrong option' ELSE 'You go!' END 
+0

सुनिश्चित नहीं है कि आपका क्या मतलब है? –

+0

सरणी कहां है? –

+0

मैं यह जांचना चाहता हूं कि विकल्प में से किसी एक के बराबर विकल्प (1, 3, 99) 'गलत विकल्प' वापस करना चाहिए, अन्यथा - 'तुम जाओ!'। – Shimmy

उत्तर

18
SELECT CASE WHEN [Option] IN (1, 3, 99) THEN 'Wrong option' ELSE 'You go' END 
4

आप बल्कि CASE <value> WHEN <value> THEN <value> ... END विकल्प की तुलना में, CASE WHEN <predicate> THEN <value> ... END विकल्प का उपयोग कर सकते हैं।

SELECT CASE WHEN [Option] IN (1, 3, 99) THEN 'Wrong option' ELSE 'You go!' END 

... लेकिन एक बाहरी में शामिल होने (और

CASE WHEN t.Value IS NULL THEN 'Not in list' ELSE 'In list' END 

, या

CASE WHEN EXISTS (SELECT * FROM yourTable t WHERE t.value = [Option]) THEN 'Bad' ELSE 'Ok' END 

... बिना एक में शामिल होने अगर मान किसी तालिका में हैं, तो आप सिर्फ करते सकता है

संबंधित मुद्दे