sql - 减少在 Oracle 中使用 AND 运算符,同时比较不同列中的多个 NULL 值

标签 sql oracle

我想比较多列的 NULL 值。例如。假设我的表中有 3 列,我必须从中找出 NOT NULL 值。我正在使用以下代码:

select * from table1 where 
column1 is not null 
and column2 is not null
and column3 is not null

我不想使用此代码,因为如果列继续增加,它会多次使用“和”。
在 Oracle 11g 中有人可以选择吗?

最佳答案

我同意您的查询没有问题的评论。如果您正在检查的列都是数字类型,那么您可以使用 Oracle 的空值行为来缩短查询,如下所示:

select * from table 1
where 
  (
    column1 
    + column2
    + column3
  ) is not null;

如果列出的任何列为空,则总和也将为空。不幸的是,如果你有字符串 - 空字符串连接就好了,所以同样的方法对它们不起作用。

关于sql - 减少在 Oracle 中使用 AND 运算符,同时比较不同列中的多个 NULL 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27243405/

相关文章:

sql - 如何比较同一个表中的多行?

sql - 如何使用参数从 bash 脚本运行 SQL 更新字符串?

sql - 在oracle中使整个列名小写

java - 本地 JDBC 连接成功,部署时相同代码失败

sql - 总是在 SQL 中显示小数位?

php - 如何检查表列中是否存在特定值

基于 Excel 文件数据库上的日期的 SQL 查询

javascript - Html5 表示值未定义

oracle - 有没有办法解决 Oracle 中的更改通知问题?

java - 在什么情况下尖括号用反斜杠转义?