Ich wähle Datensätze aus hat eine Spalte namens [getaggt], und es ist standardmäßig auf Null.
Mein Problem ist, wenn die @tagged
Variable NULL
ist, dann möchte ich beide 0,1 Werte auswählen. Das lässt mich denken, dass ich eine IF/ELSE
machen sollte, aber meine Versuche scheitern.IF/Else/CASE-Anweisung in WHERE-Klauseln
--- einfaches Beispiel:
declare @tagged int = NULL
SELECT *
FROM [TableName]
WHERE datecreated > '2016-01-01'
AND tagged = @tagged
Viele DBAs empfehlen CASE-Klausel. Aber ich brauche Hilfe zu wissen, wo es hinzuzufügen.
Füge ich es in die Abfrage ein?
Mein schwacher Versuch war:
SELECT *
FROM [TableName]
WHERE datecreated > '2016-01-01'
AND (
CASE @tagged
WHEN 0 THEN (tagged = 0)
WHEN 1 THEN (tagged = 1)
ELSE (tagged IN(0,1)
END
)
A 'CASE' kann in einem' JOIN' [wie gezeigt verwendet werden hier] (http://stackoverflow.com/a/10260297/92546). Eine WHERE-Klausel kann dasselbe Muster verwenden. – HABO