Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Добавете празен ред към резултатите от заявката, ако няма намерени резултати

Опасявам се, че много малко опции.

Винаги трябва да докоснете таблицата два пъти, независимо дали COUNT, EXISTS преди, EXISTs в UNION, TOP клауза и т.н.

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)

Решение EXISTS е по-добро от COUNT, защото ще спре, когато намери ред. COUNT ще премине през всички редове, за да ги преброи действително



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да използвате съхранена процедура в конфигурацията на log4net за SQL Server за регистриране

  2. Работа с типа данни на SQL Server XML

  3. Рекурсивна замяна от таблица със знаци

  4. Transactionscope хвърля изключение, тази платформа не поддържа разпределени транзакции при отваряне на обект за връзка

  5. СЪЕДИНЯВАЙТЕ три таблици и събирайте данни от множество редове за всеки DISTINCT ред в отделна колона