I, in einer gespeicherten Prozedur mit @input als Eingabewert, eine case-Anweisung in einer where-Klausel wie diese verwenden mag:SQL Server: CASE-Anweisung in WHERE-Klausel mit IN-Bedingung
SELECT my_column
FROM MY_TABLE
WHERE MY_TABLE.my_column in (CASE WHEN @input = '1' THEN ('A','B','C') ELSE ('A') END)
Unglaublich, es funktioniert, wenn ich nach „DANN“ wie dies nur einen Wert legen:
SELECT my_column
FROM MY_TABLE
WHERE MY_TABLE.my_column in (CASE WHEN @input = '1' THEN ('C') ELSE ('A') END)
Kann ich den IN
Zustand mit einer CASE
Anweisung, wie ich oben wollte? Gibt es einen anderen Weg, um zu tun, was ich will?
Vielen Dank für Ihre Hilfe,
CLJ
'CASE' in T-SQL ist ein ** Ausdruck ** (wie' a + b ') - keine * Erklärung * - was letztlich wird durch einen einzigen atomaren Wert ersetzt –