@Blorgbeard answer (menggunakan top 1 dan order by) mungkin adalah cara terbaik tetapi hanya untuk berbeda Anda juga bisa menggunakan sub-query dan tidak ada:
SELECT name FROM names
WHERE (colA = @colA) OR (colA = 'ALL' AND NOT EXISTS(
SELECT name FROM names
WHERE colA = @colA))
Saya kira "keuntungan" dari ini adalah menggunakan sql yang lebih standar.