Quiero escribir un procedimiento almacenado que funciona más o menos así:procedimiento almacenado con resultados condicionales
SELECT * from T where T.A = @a and T.B = @b
si que devuelve filas, devolver esas filas, si no, volver
SELECT * from T where T.A = @a and T.B IS NULL
Editar :
Se siente que debería haber una manera de crear un procedimiento tal que ejecute la primera consulta una vez y ejecuta la segunda consulta solo si es necesario.
End Edit.
Lo mejor que pude hacer fue el seguimiento, que (en teoría) se ejecuta la primera consulta dos veces, a menos que tal vez su caché:
IF EXISTS (SELECT * from T where T.A = @a and T.B = @b) THEN
SELECT * from T where T.A = @a and T.B = @b
ELSE
SELECT * from T where T.A = @a and T.B IS NULL
Por lo que su valor, esto es, en Microsoft SQL Server 2008
¿Qué base de datos y versión? – Blorgbeard
¿Y su pregunta o problema es?!?!?!? Parece que tiene un enfoque: ¿no funciona o cuál es el problema? –
Si eso es SQL Server 2000, entonces ese es el mejor enfoque que conozco pero +1 porque me encantaría saber si hay otra forma. –