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.

Était-ce utile?

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) ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top