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.