2009-12-11 16 views
18

Pregunta: Tengo una función de SQL que devuelve una lista de archivosSQL unión condicional

ahora debería unirse a una lista adicional a esa lista con un sindicato, pero sólo si el usuario es admin.

¿Es esto posible? Algo así como:

CREATE FUNCTION tfu_CMS_Process(@bIsAdmin bit ) 
-- Add the parameters for the function here 
RETURNS TABLE 
AS 
RETURN 
(
SELECT * FROM TABLE1 

if bIsAdmin 

UNION ALL 

SELECT * FROM TABLE2 

end if 
) 

Respuesta

33
SELECT * 
FROM table1 
UNION ALL 
SELECT * 
FROM table2 
WHERE @isAdmin = 1 
+0

que iba a sugerir el uso de una tabla temporal, pero esta es la verdadera respuesta. – cjk

+4

@Quassnoi: Deje algo para nosotros, ¿eh? :) –

+4

'@OMG Ponies': ¡tuviste toda la semana! – Quassnoi