Sangat sedikit pilihan yang saya khawatirkan.
Anda selalu harus menyentuh meja dua kali, apakah COUNT, EXISTS before, EXISTs in UNION, TOP clause dll
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)
Solusi EXISTS lebih baik daripada COUNT karena akan berhenti ketika menemukan baris. COUNT akan melintasi semua baris untuk benar-benar menghitungnya