尝试查找返回 0 的列的 NULL 值数量?

发布于 2024-11-11 16:22:03 字数 304 浏览 4 评论 0原文

我的表中有一个列有几个不同的值,我使用 group by 对其进行了验证。

当我执行类似的操作时,它会返回一个数字金额:

SELECT COUNT(*) FROM table WHERE age='';

但是,当我这样做时,它总是返回 0,即使这是不正确的:

SELECT COUNT(*) FROM table WHERE age=NULL;

知道为什么在应该返回正确结果时返回 0 吗?

I have a column in my table that has a few different values, of which I verified by using a group by.

When I do something like this it returns a number amount:

SELECT COUNT(*) FROM table WHERE age='';

However when I do this it always returns 0 even though that is incorrect:

SELECT COUNT(*) FROM table WHERE age=NULL;

Any idea why this is returning 0 when it should be returning the correct result?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

亢潮 2024-11-18 16:22:03
SELECT COUNT(*) FROM table WHERE age IS NULL;

阅读 3.3.4.6。使用 NULL 值

要测试 NULL,您不能使用
算术比较运算符,例如
如 =、< 或 <>。

使用 IS NULL
和 IS NOT NULL 运算符代替:

SELECT COUNT(*) FROM table WHERE age IS NULL;

Read 3.3.4.6. Working with NULL Values

To test for NULL, you cannot use the
arithmetic comparison operators such
as =, <, or <>.

Use the IS NULL
and IS NOT NULL operators instead:

离不开的别离 2024-11-18 16:22:03

NULL 表示未知值,因此从技术上讲,NULL 不等于任何东西 - 包括它本身

您应该使用 IS NULL 代替:

SELECT COUNT(*) FROM table WHERE age IS NULL

NULL represents an unknown value, so NULL isn't technically equal to anything - including itself.

You should use IS NULL instead:

SELECT COUNT(*) FROM table WHERE age IS NULL
北城挽邺 2024-11-18 16:22:03

你需要说“age IS NULL”而不是“age=null”。 NULL 不等于任何东西——这意味着没有数据并且您无法测试相等性。

You need to say "age IS NULL" not "age=null". NULL is not equal to anything -- it means there is no data and you cannot test for equality.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文