Câu trả lời @Blorgbeard (sử dụng top 1 và sắp xếp theo thứ tự) có lẽ là cách tốt nhất nhưng để khác đi, bạn cũng có thể sử dụng một truy vấn phụ và không tồn tại:
SELECT name FROM names
WHERE (colA = @colA) OR (colA = 'ALL' AND NOT EXISTS(
SELECT name FROM names
WHERE colA = @colA))
Tôi đoán "lợi thế" của điều này là nó sử dụng sql chuẩn hơn.