Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Count(*) zwraca wartość null

Twoje zapytanie wykonuje sprzężenie zewnętrzne podczas próby zliczenia. Jeśli B.UserId jest wymieniony jako NULL, to count(* ) również zwróci NULL. Możesz to naprawić, jawnie wykonując zliczanie A za pomocą "count (A.*)" lub umieszczając je w 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   

lub

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. Liczenie DISTINCT w wielu kolumnach

  2. Średnia krocząca / średnia krocząca

  3. Jak przenieść tabelę do schematu w T-SQL?

  4. Zapytanie SQL obejmujące grupowanie i łączenie

  5. Jak podstawić ciąg, jeśli rekord ma wartość NULL w T-SQL?