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
Chat
Oh, the operator is not available. Leave us your comments. We will answer all your questions as soon as possible.
e
@@xeDO0
1'"
e'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
L7oVYP7m')) OR 312=(SELECT 312 FROM PG_SLEEP(15))--
A1v25QPv') OR 393=(SELECT 393 FROM PG_SLEEP(15))--
kxT46vOm' OR 479=(SELECT 479 FROM PG_SLEEP(15))--
VTgcz37T'; waitfor delay '0:0:15' --
1 waitfor delay '0:0:15' --
(select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/
0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z
0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z
if(now()=sysdate(),sleep(15),0)
-1" OR 3+906-906-1=0+0+0+1 --
-1" OR 2+906-906-1=0+0+0+1 --
-1' OR 3+316-316-1=0+0+0+1 or '8BoDIAd6'='
-1' OR 2+316-316-1=0+0+0+1 or '8BoDIAd6'='
-1' OR 3+137-137-1=0+0+0+1 --
-1' OR 2+137-137-1=0+0+0+1 --
-1 OR 3+877-877-1=0+0+0+1
-1 OR 2+877-877-1=0+0+0+1
-1 OR 3+418-418-1=0+0+0+1 --
-1 OR 2+418-418-1=0+0+0+1 --
e
e