Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Adicione uma linha vazia aos resultados da consulta se nenhum resultado for encontrado


Muito poucas opções, eu tenho medo.

Você sempre tem que tocar na mesa duas vezes, seja COUNT, EXISTS antes, EXISTs em UNION, cláusula TOP 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)

Uma solução EXISTS é melhor que COUNT porque ela irá parar quando encontrar uma linha. COUNT percorrerá todas as linhas para realmente contá-las