SQL CASE [Column] WHEN IN('case1','case2')那么'oops'END?

Shi*_*mmy 9 sql sql-server syntax case

有没有办法在数组中检查CASE:

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

jsp*_*cal 24

SELECT CASE WHEN [Option] IN (1, 3, 99) THEN 'Wrong option' ELSE 'You go' END
Run Code Online (Sandbox Code Playgroud)


Rob*_*ley 5

您可以使用CASE WHEN <predicate> THEN <value> ... END选项,而不是CASE <value> WHEN <value> THEN <value> ... END选项。

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

...但是如果值在表中,则可以进行外部联接(并且

CASE WHEN t.Value IS NULL THEN 'Not in list' ELSE 'In list' END
Run Code Online (Sandbox Code Playgroud)

, 要么

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

...没有加入。