Ini sedikit rumit. Asumsikan tabel hanya memiliki satu kolom, maka Hitung (1) dan Hitung (*) akan memberikan nilai yang berbeda.
set nocount on
declare @table1 table (empid int)
insert @table1 values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(NULL),(11),(12),(NULL),(13),(14);
select * from @table1
select COUNT(1) as "COUNT(1)" from @table1
select COUNT(empid) "Count(empid)" from @table1
Hasil Permintaan
Seperti yang Anda lihat pada gambar, Hasil pertama menunjukkan tabel memiliki 16 baris. dari mana dua baris NULL. Jadi ketika kita menggunakan Hitung (*) mesin kueri menghitung jumlah baris, Jadi kita mendapat hasil hitung sebagai 16. Tapi dalam kasus Hitung (empid) itu menghitung nilai-nilai NULL-NULL dalam kolom empid . Jadi kami mendapat hasilnya 14.
jadi setiap kali kita menggunakan COUNT (Kolom) pastikan kita menjaga nilai NULL seperti yang ditunjukkan di bawah ini.
select COUNT(isnull(empid,1)) from @table1
akan menghitung nilai NULL dan Non-NULL.
Catatan : Hal yang sama berlaku bahkan ketika tabel terdiri dari lebih dari satu kolom. Hitung (1) akan memberikan jumlah total baris terlepas dari nilai NULL / Non-NULL. Hanya ketika nilai kolom dihitung menggunakan Count (Kolom) kita perlu menjaga nilai NULL.