What is a result of the following query for table with 10 rows when there are 2 clients with the name column having a NULL value?
SELECT COUNT(name) FROM clients
Answer
Explanation
The result is 8 because if you use COUNT(column), only rows with NOT NULL value in the column are counted.
If you however use COUNT(*), rows with any value (including NULL) in the column are counted.
Example
DECLARE @clients TABLE (id INT, name NVARCHAR(50))
INSERT INTO @clients (id, name) VALUES (1, '1 Peter Johnson')
INSERT INTO @clients (id, name) VALUES (2, '2 Peter Johnson')
INSERT INTO @clients (id, name) VALUES (3, '3 Peter Johnson')
INSERT INTO @clients (id, name) VALUES (4, '4 Peter Johnson')
INSERT INTO @clients (id, name) VALUES (5, '5 Peter Johnson')
INSERT INTO @clients (id, name) VALUES (6, '6 Peter Johnson')
INSERT INTO @clients (id, name) VALUES (7, '7 Peter Johnson')
INSERT INTO @clients (id, name) VALUES (8, '8 Peter Johnson')
INSERT INTO @clients (id, name) VALUES (9, NULL)
INSERT INTO @clients (id, name) VALUES (10, NULL)
SELECT COUNT(name) FROM @clients
-- Returns 8
SELECT COUNT(*) FROM @clients
-- Returns 10
Related Databases job interview questions
When you use SQL Server, what is a difference between local and global temporary table?
DatabasesMS SQL ServerSQL SeniorWhat is a result of the query below for table with 10 rows when there are 2 clients with the headcount column having a NULL value, there are 7 customers with 1 head and 1 customer with 2 heads?
DatabasesSQL Medior