NULL
计算内部值的最佳方法是什么case
?
使用连接表 - 我正在尝试计算列的值P.ID
(来自连接表),并 通过 case
.
例如:
- 当计数为 0 - 显示“无”
- 当计数 1-2 - 显示“很少”。
- 当计数 3-5 - 显示'中
- 当计数 5+ - 显示“很多”
但是,由于从连接中收到的一些值是空的 - 我无法计算它们。
我应该对查询进行哪些更改才能将每个都引用NULL
为 0?
SELECT
U.Mail,
COUNT(P.ID) AS PostCount,
CASE
WHEN COUNT(P.ID) = 0 THEN'none' --doesn't work
WHEN COUNT(P.ID) <= 2 THEN 'few'
WHEN COUNT(P.ID) <= 5 THEN 'medium'
ELSE 'many'
END AS PostCountCategory
FROM
Users U
LEFT JOIN
Tag T ON U.Mail = T.Mail
LEFT JOIN
Post P on T.IDPost = P.ID
GROUP BY U.Mail;
我对你的问题不是很清楚,但是你可以为你的空问题改变你的代码如下:
或者,您可以
count(isnull(P.ID, 0))
在 case 语句中使用。希望这可以帮助。正如Mustaccio
coalesce
所建议的,您也可以使用isnull
.