나는 내가 쓴 테이블SQL 선택 COUNT 문제
num
----
NULL
NULL
NULL
NULL
55
NULL
NULL
NULL
99
에게이
select COUNT(*)
from tbl
where num is null
출력 7
했지만, 난이
select COUNT(num)
from tbl
where num is null
쓸 때 출력했다 0
이 두 쿼리의 차이점은 무엇입니까 ??
나는 내가 쓴 테이블SQL 선택 COUNT 문제
num
----
NULL
NULL
NULL
NULL
55
NULL
NULL
NULL
99
에게이
select COUNT(*)
from tbl
where num is null
출력 7
했지만, 난이
select COUNT(num)
from tbl
where num is null
쓸 때 출력했다 0
이 두 쿼리의 차이점은 무엇입니까 ??
당신이 선택한 분야에 차이가 있습니다.
COUNT(*)
을 계산할 때 NULL 값이 고려됩니다 (반환 된 모든 행 수).
카운트시 COUNT(num)
NULL 값은 고려되지 않습니다 (null이 아닌 모든 필드를 계산하십시오). DBMS에이
. COUNT 볼 (DISTINCT EXPR는 [EXPR ...]) 위의 출력, 쿼리 카운트 (NUM)의 결과를 고려
count(*)
행 수를 반환합니다. num
이 null
이 아닌 행 수를 반환합니다. 마지막 결과를 select count(*) from test where num is null
으로 변경하여 원하는 결과를 얻으십시오.
먼저 값을 제거 세어 2
그래, 그게 나 한테 도청당한거야. 그러나 왜 출력이 0입니까? – yogi
쿼리에 "where num is null"이있는 행만 선택하는 where 절이없는 경우 true가됩니다. –
초 경우이어야 그러면 where 절이 나타납니다. 첫 번째 경우에는 *
null을 사용하는 행이 제거되지 않습니다.
것은 당신이 널 (null)이 포함 된 콜에 계산하고 사용보다 널 (null)와 행 수에 포함되도록하려면
Count(ISNULL(col,0))
ISNULL()은 비표준 SQL이므로에 따라 작동하지 않을 수도 있습니다 OP가 사용하는 RDBMS –
이 질문의 중복 가능성 http://stackoverflow.com/questions/3003457/count-vs-countcolumn-name-the-of-correct – praveen
[SQL에서 count (column)과 count (*)의 차이점은 무엇입니까?] (http://stackoverflow.com/questions/) 59294/in-sql-whats-the-difference-between-countcolumn-and-count) –