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

COALESCE in Where-Klausel?

Die @Blorgbeard-Antwort (mit Top 1 und Sortieren nach) ist wahrscheinlich der beste Weg, aber nur um anders zu sein, könnten Sie auch eine Unterabfrage verwenden und existiert nicht:

SELECT name FROM names 
WHERE (colA = @colA) OR (colA = 'ALL' AND NOT EXISTS(
                                                SELECT name FROM names 
                                                WHERE colA = @colA)) 

Ich denke, der "Vorteil" davon ist, dass mehr Standard-SQL verwendet wird.