Odpowiedź @Blorgbeard (przy użyciu pierwszego 1 i uporządkowania według) jest prawdopodobnie najlepszym sposobem, ale żeby się różnić, możesz również użyć podzapytania, które nie istnieje:
SELECT name FROM names
WHERE (colA = @colA) OR (colA = 'ALL' AND NOT EXISTS(
SELECT name FROM names
WHERE colA = @colA))
Myślę, że "zaletą" tego jest to, że używa bardziej standardowego sql.