“IN”的奇怪行为条款作品

发布于 2024-09-15 18:57:43 字数 368 浏览 7 评论 0原文

我找到了这个网站: 这里

很好地描述了它为什么有效和为什么无效。

但我的问题有点不同。

select 'true' from dual where 'test' not in ('test2','');

为什么此查询不返回行?
'' 是否像 null 一样处理?

谢谢你的帮助

i found this site: here

its very well described why it works and why not.

but my question is a little different.

select 'true' from dual where 'test' not in ('test2','');

why does this query not returing a row?
is '' handled like null?

thx for your help

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

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

发布评论

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

评论(2

花想c 2024-09-22 18:57:43

您的怀疑是正确的

因此,您的查询基本上是

WHERE 'test' <> 'test2' and  'test' <> Null

Which 评估为

WHERE true and unknown

Which is unknown

select * from dual where '' = '';

将给出相同(缺少)的结果

Your suspicions were correct.

So your query is basically

WHERE 'test' <> 'test2' and  'test' <> Null

Which evaluates as

WHERE true and unknown

Which is unknown

select * from dual where '' = '';

will give the same (lack of) results

近箐 2024-09-22 18:57:43

是的,在 Oracle 中,空字符串就是 NULL。

Yes, in Oracle an empty string is a NULL.

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