un parametro SQL per darmi 3 valori potenziali
-
18-09-2019 - |
Domanda
Nella mia procedura immagazzinata Ho bisogno di un solo parametro che mi darà un potenziale di 3 valori.
Così posso fare qualcosa di simile:
@p1 <-- my parameter
IF (@p1 ???) -- include users
SELECT * FROM USERS
IF (@p1 ???) -- include employees
SELECT * FROM employees
IF (@p1 ???) -- iclude customers
SELECT * FROM CUSTOMERS
Sono indovinando dovrò fare un po 'po' colpi, ma non sono sicuro come farlo in SQL.
Aggiorna
Sono in realtà facendo un UNION di sorta.
Soluzione
Se @ P1 è un int, o qualche variante di esso come bigint o tinyint, probabilmente si potrebbe usare bit a bit e.
Ecco un esempio:
IF ( @p1 & 1 = 1)
IF ( @p1 & 4 = 4)
Altri suggerimenti
Invece di avere la linea T-SQL, si sono spesso meglio creare le stored procedure distinte e li chiama.
Questo è perché c'è solo una cache piano di query per partita.
anche , fate attenzione di commento di Remus: si sta infrangendo la regola di responsabilità unico. Questo rende la manutenzione errore incline.
Potrebbe essere una storia diversa se si sta ritornando sempre gli stessi risultati multipli set (MARS) ...