Tôi e là rất ít lựa chọn.
Bạn luôn phải chạm vào bảng hai lần, cho dù COUNT, TỒN TẠI trước đó, TỒN TẠI trong UNION, mệnh đề TOP, v.v.
select
id, category
from mytable
where category = @category
union all --edit, of course it's quicker
select
0, ''
where NOT EXISTS (SELECT * FROM mytable where category = @category)
Giải pháp EXISTS tốt hơn là COUNT vì nó sẽ dừng lại khi tìm thấy một hàng. COUNT sẽ duyệt qua tất cả các hàng để thực sự đếm chúng