Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Fügen Sie den Abfrageergebnissen eine leere Zeile hinzu, wenn keine Ergebnisse gefunden wurden

Sehr wenige Optionen, fürchte ich.

Sie müssen die Tabelle immer zweimal berühren, egal ob COUNT, EXISTS before, EXISTs in UNION, TOP-Klausel 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)

Eine EXISTS-Lösung ist besser als COUNT, weil sie aufhört, wenn sie eine Zeile findet. COUNT durchläuft alle Zeilen, um sie tatsächlich zu zählen