um parâmetro sql para me dar 3 valores potenciais
-
18-09-2019 - |
Pergunta
Na minha procedimento armazenado Eu preciso de um único parâmetro que vai me dar um potencial de 3 valores.
Para que eu possa fazer algo como:
@p1 <-- my parameter
IF (@p1 ???) -- include users
SELECT * FROM USERS
IF (@p1 ???) -- include employees
SELECT * FROM employees
IF (@p1 ???) -- iclude customers
SELECT * FROM CUSTOMERS
Eu estou supondo que vai ter que fazer algum barulho pouco, mas não sabe como fazê-lo em sql.
Atualizar
Na verdade, estou fazendo uma união de tipo.
Solução
Se @ p1 é um int, ou alguma variante dele como bigint ou tinyint, você provavelmente poderia usar bit a bit e.
Aqui está um exemplo:
IF ( @p1 & 1 = 1)
IF ( @p1 & 4 = 4)
Outras dicas
Ao invés de ter a linha T-SQL, que são muitas vezes melhor criar procedimentos armazenados separados e chamá-los.
Isso ocorre porque há apenas um plano consulta em cache por lote.
Também : Acautelai-vos do comentário de Remus: você está quebrando a regra da responsabilidade única. Isso faz com que erro de manutenção de bruços.
Pode ser uma história diferente se você está sempre retornando os mesmos resultados múltiplos conjuntos (MARS) ...