我想编写一个SELECT语句,它只使用一个测试返回没有值的列(null、empty或all spaces).

我以为这样行得通:

SELECT column_name from table_name WHERE column_name NOT LIKE '%_%';

但这不适用于空值.

我当然可以补充

OR column_name IS NULL

它会起作用的,但我想要一种使用单一测试的方法.

推荐答案

在功能上,你应该能够使用

SELECT column_name
  FROM table_name
 WHERE TRIM(column_name) IS NULL

存在的问题是,不会使用列名称上的索引.如果TRIM(column_name)是一个 Select 性条件,那么需要有一个基于函数的索引.

Sql相关问答推荐

Postgres从组中 Select 具有相反排序顺序的行

SQL从同一表连接列

在SQL Server中使用LEFT连接包含特定记录

用相同值更新行

将计算列设置为持久化的目的是什么?

将Dense_RANK列为聚合(非解析)函数(&A)

在MS Access Modern图表的X轴上显示时间值时遇到问题

更正用于判断错误组合的SQL

SQL查询正在工作,但返回空结果

如何使子查询在UPDATE语句期间获得最新更新

配置单元查询失败:无法识别';附近的输入;LEFT'';(select子句中的';';col'

如何判断小数点后千位是否不为0

用替代方案替换 SQL Cursor 以提高性能

如何用SQL组合客户拥有的产品

SQL Select 字母范围没有给我任何东西

如何从postgresql中的项目映射(关联数组)设置值?

Postgres更新增量之间的差异

MS ACCESS 错误插入 X(...) 从 A 联合 Select ... 从 B

计算 PostgreSQL 中的平均会话长度

条件前置值