带有空字符串的Sql,相同的资格,不同的结果

  • 本文关键字:结果 Sql 字符串 sql oracle
  • 更新时间 :
  • 英文 :


我读过很多关于Oracle如何处理null或空字符串的文章。

假设我有一张表,上面有这些数据:

id myfield
id1 mydata1
id2 mydata2

Oracle在处理null方面很奇怪。它是在70年代设计、开发和测试的,早在SQL标准正式建立之前。甲骨文是一个伟大的引擎,但它也有一些怪癖;这是其中之一。

表达式:

where myfield <> ''

被Oracle引擎自动改写为:

where myfield <> null

而且,由于没有任何值可以满足此谓词,因此不会返回任何行。

参见db<gt;不停摆弄

最新更新