cdu*_*dub 0 sql t-sql sql-server
我有两个这样的查询:
SELECT MyId, MyColumn FROM MyTable WHERE MyColumn IS NULL;
SELECT count(MyColumn) as MyCount FROM MyTable WHERE MyColumn IS NULL;
Run Code Online (Sandbox Code Playgroud)
我得到的结果是:
MyId MyColumn
10 NULL
Run Code Online (Sandbox Code Playgroud)
为什么第二个查询中计数总是0?
该COUNT()函数忽略NULL值,因此第二个查询中的计数将始终为零。要么算别的:
SELECT COUNT(*) AS MyCount
FROM MyTable
WHERE MyColumn IS NULL;
Run Code Online (Sandbox Code Playgroud)
或者使用CASE表达式对整个表进行计数以显式计算NULL值:
SELECT COUNT(CASE WHEN MyColumn IS NULL THEN 1 END) AS MyCount
FROM MyTable;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
261 次 |
| 最近记录: |