Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Ist es möglich, eine Case-Anweisung in einer SQL-From-Klausel zu verwenden?

Ich glaube nicht, dass das möglich ist. Zum einen gehen Abfrageoptimierer von einer bestimmten Liste tabellenähnlicher Dinge in der FROM-Klausel aus.

Die einfachste Problemumgehung, die ich mir vorstellen kann, wäre eine UNION zwischen den beiden Tabellen:

SELECT  md5
FROM    hr
WHERE   @clienttype = 'Employee'
AND     current = 2
UNION
SELECT  md5
FROM    other
WHERE   @clienttype = 'Member'
AND     current = 2;

Nur eine Hälfte der UNION könnte angesichts des @clienttype-Prädikats wahr sein.