ein SQL-Parameter me 3 mögliche Werte zu geben,
-
18-09-2019 - |
Frage
In meinem gespeicherten Prozedur muss ich einen einzigen Parameter, der mir ein Potential von 3 Werte geben wird.
So kann ich, wie etwas tun:
@p1 <-- my parameter
IF (@p1 ???) -- include users
SELECT * FROM USERS
IF (@p1 ???) -- include employees
SELECT * FROM employees
IF (@p1 ???) -- iclude customers
SELECT * FROM CUSTOMERS
Ich vermute, ich muss etwas Bit-Banging tun, aber nicht sicher, wie es in SQL zu tun.
Update
Ich bin eigentlich eine Vereinigung von Art zu tun.
Lösung
Wenn @ p1 ist ein int, oder eine Variante davon wie Bigint oder tinyint, werden Sie wahrscheinlich bitweise verwenden könnte und.
Hier ein Beispiel:
IF ( @p1 & 1 = 1)
IF ( @p1 & 4 = 4)
Andere Tipps
Anstatt die Inline-T-SQL, Sie sind oft besser getrennt gespeicherte Prozeduren erstellen und rufen sie.
Das ist, weil es nur ein Cache gespeicherten Abfrage-Plan pro Charge ist.
Auch , beherzigt Remus Kommentar: Sie haben die einzige Verantwortung Regel brechen. Das macht die Wartung fehleranfällig.
Es könnte eine andere Geschichte sein, wenn Sie immer die gleichen mehrere Ergebnismengen (MARS) Rückkehr ...