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

Count(*) gibt null zurück

Ihre Abfrage führt einen äußeren Join aus, während sie versucht, eine Zählung durchzuführen. Wenn B.UserId als NULL aufgeführt ist, gibt count(* ) ebenfalls NULL zurück. Sie können dies beheben, indem Sie explizit eine Zählung von A mit "count (A.*)" durchführen oder es in ISNULL() einschließen.

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   

oder

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