2010-01-05 13 views
8

bir dizide geldiğinde bir VAKA kontrol etmek için bir yol var mı: Sen yerine CASE <value> WHEN <value> THEN <value> ... END seçeneği yerine, CASE WHEN <predicate> THEN <value> ... END seçeneğini kullanabilirsinizSQL CASE [Sütun] NE ZAMANINDA ('case1', 'case2') SONRA 'Oops' END?

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

Ne demek istediğinizden emin değil misiniz? –

+0

Dizinin nerede var? –

+0

Seçenek (1) 'deki öğelerden birine eşit olup olmadığını kontrol etmek istiyorum 3, 99) 'Yanlış seçenek' döndürmeli, başka - 'Sen git!'. – Shimmy

cevap

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

.

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

... ama bir dış birleşim (ve

CASE WHEN t.Value IS NULL THEN 'Not in list' ELSE 'In list' END 
veya
CASE WHEN EXISTS (SELECT * FROM yourTable t WHERE t.value = [Option]) THEN 'Bad' ELSE 'Ok' END 

... olmadan katılmak değerler tabloda ise, sen do sadece olabilir

İlgili konular