Très peu d'options, j'en ai peur.
Vous devez toujours toucher la table deux fois, que ce soit COUNT, EXISTS before, EXISTs in UNION, TOP clause etc
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)
Une solution EXISTS est préférable à COUNT car elle s'arrêtera lorsqu'elle trouvera une ligne. COUNT parcourra toutes les lignes pour les compter réellement