sql - Oracle DB LIKE 查询 NULL 值

标签 sql oracle

这个问题是关于 Oracle 数据库的。我想知道 Oracle DB 查询 LIKE 子句如何处理 NULL 值。

Select * From table_name where column_name like 'text%'  

在上面的查询中,Oracle 数据库如何处理列 'column_name' 具有空值的行?还有'不喜欢'怎么样。

另外,我观察到没有为以下查询选择具有 NULL 值的行。

Select * From table_name where column_name NOT LIKE 'text%'  .

我不知道为什么列的具有 NULL 值的行不在结果中,即使它们是空的,因此不像 'text%' 。

最佳答案

NULL 值基本上无法进行所有比较。一般的想法是 NULL 表示“我不知道值是什么”。因此,当您将 like 与模式 'text%' 一起使用时,答案是“我不知道值是什么”。它是 NULL

如果你使用not like,答案是一样的“我不知道结果是什么”。

这就是 NULL 的工作原理。即使使用 likenot like。即使使用 Oracle。

关于sql - Oracle DB LIKE 查询 NULL 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38765774/

相关文章:

oracle 10g 的 android odbc 连接

oracle - 为什么Oracle的Spark查询(负载)与SQOOP相比这么慢?

sql - 将 Progress/4GL 转换为 SQL

c# - 带有 SqlConnection 的后台工作程序

java - 编译时无法启动 Activity ComponentInfo : android. database.sqlite.SQLiteException : no such table ,

mysql - 带计数的交叉连接 MySQL 查询

javascript - jqGrid 查询中的子句

sql - 将两个选择查询合二为一

oracle - 生产环境打包编译。这会导致任何问题吗?

Oracle 用户定义的 varchar 的 vararray 聚合函数