un parámetro de SQL para dame 3 valores posibles
-
18-09-2019 - |
Pregunta
En mi procedimiento almacenado que necesitan un parámetro único que me dará un potencial de 3 valores.
Así que puedo hacer 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
Estoy adivinando voy a tener que hacer un poco de golpes poco, pero no está seguro de cómo hacerlo en SQL.
Actualizar
De hecho, estoy haciendo una unión de tipo.
Solución
Si @ P1 es un int, o alguna variante de la misma como BIGINT o tinyint, que probablemente podría utilizar bit a bit y.
He aquí un ejemplo:
IF ( @p1 & 1 = 1)
IF ( @p1 & 4 = 4)
Otros consejos
En lugar de tener la línea T-SQL, que a menudo son mejor crear procedimientos almacenados por separado y llamarlos.
Esto se debe a que sólo hay un plan de consulta almacenado en caché por lote.
también , ten cuidado del comentario de Remo: usted está violando la regla de la responsabilidad individual. Esto hace propenso a errores de mantenimiento.
Podría ser una historia diferente si siempre está devolviendo los mismos conjuntos de resultados múltiples (MARS) ...