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

Count(*) връща нула

Вашата заявка извършва външно свързване, докато се опитва да извърши преброяване. Ако B.UserId е посочен като NULL, тогава count(* ) също ще върне NULL. Можете да коригирате това, като изрично извършите преброяване на A с помощта на "count (A.*)" или като го обвиете в ISNULL().

select A.UserId, B.UserId, count(A.*)
  from select tableA A 
  left outer join tableB B
    on A.UserBNumber = B.Number
 group by A.UserId, B.UserId   

или

select A.UserId, B.UserId, isnull(count(*),0)
  from select tableA A 
  left outer join tableB B
    on A.UserBNumber = B.Number
 group by A.UserId, B.UserId   


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sql Query за групиране на данните от две таблици

  2. Ограничете редовете, върнати в заявка на SQL Server, като използвате клаузата TOP

  3. Вмъкнете няколко реда със стойности по подразбиране в таблица

  4. Създаване на потребител, който може да ВИЖДА само една база данни и да избира само от нея?

  5. @@ROWCOUNT – Вземете броя на редовете, засегнати от последното изявление в SQL Server