un paramètre sql pour me donner 3 valeurs potentielles
-
18-09-2019 - |
Question
Dans ma procédure stockée je besoin d'un seul paramètre qui me donnera un potentiel de 3 valeurs.
Je peux faire quelque chose comme:
@p1 <-- my parameter
IF (@p1 ???) -- include users
SELECT * FROM USERS
IF (@p1 ???) -- include employees
SELECT * FROM employees
IF (@p1 ???) -- iclude customers
SELECT * FROM CUSTOMERS
Je suppose que je vais devoir faire quelques claquements de peu, mais ne savez pas comment le faire dans sql.
Mise à jour
Je suis en train de faire une union de genre.
La solution
Si @ p1 est un entier, ou une variante de celui-ci comme bigint ou tinyint, vous pouvez probablement utiliser et bitwise.
Voici un exemple:
IF ( @p1 & 1 = 1)
IF ( @p1 & 4 = 4)
Autres conseils
Plutôt que d'avoir la ligne T-SQL, vous êtes souvent mieux de créer des procédures stockées séparées et les appeler.
Ceci est parce qu'il n'y a qu'un seul plan de requête mis en cache par lot.
aussi , tenir compte du commentaire de Remus: vous enfreignez la règle de responsabilité unique. Cela rend l'erreur d'entretien ventral.
Il est peut-être une autre histoire si vous êtes toujours les mêmes jeux retournerez plusieurs résultats (MARS) ...