如何写sql语句去掉oracle返回结果中的空值(NULL)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何写sql语句去掉oracle返回结果中的空值(NULL)相关的知识,希望对你有一定的参考价值。

比如有表Table 内容是 1 2 3 4 5 (NULL) (NULL) (NULL) ......

我用select * from Table 取过来的值就把这些空值(NULL)也取过来了 我想要自动舍弃空值 比如例子中就取到 1 2 3 4 5 这里结束 sql语句要怎么写?

我尝试使用is not null判断,但是这张表后面的空字段太多了,有没有简单的判断方法?
哭死了 后面有30多个字段 我要写多长的sql 求简便方法啊

没有什么简便的方法,但是你可以通过查系统表来减少你写语法的工作,例如:
select 'AND ' ||COLUMN_NAME||' IS NOT NULL' from all_tab_columns where table_name = 'table_name'

这样这个表的所有字段就自动组成了条件语句。
参考技术A 这个可真没什么好办法,只能一个字段一个字段 is not null

---补充---
desc 表名

所有字段都copy出来
用UE在列块模式下加上is not null
参考技术B 加个where条件就可以了啊。比如查询comm不为空的数据。
直接写语句:
1
select* fromemp wherecomm isnotnull;
查询结果:
参考技术C 那你就查询出结果来
然后保存为EXCEL,通过execl过滤掉了
别的通过sql语句好像没有什么方法可以过滤
参考技术D Top 1 就是 返回 第一条 数据

如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!

vaela

仅计算两个不同列中的空值并显示在一个选择语句中

【中文标题】仅计算两个不同列中的空值并显示在一个选择语句中【英文标题】:Count only null values in two different columns and show in one select statement 【发布时间】:2011-07-09 11:54:54 【问题描述】:

我只想计算特定列中的空值和另一列中的所有空值 特定列,但是我希望我的结果将这两个结果都显示在一个表中。

这是我目前所拥有的:

Select Count(*) as 'Column1Count', Count(*) as 'Column2Count'
   from table1
       Where column1 is null
     and column2 is null

请帮忙

【问题讨论】:

【参考方案1】:

这应该可行:

select
    (select count(*) from table1 where column1 is null) as 'Column1Count',
    (select count(*) from table1 where column2 is null) as 'Column2Count';

【讨论】:

【参考方案2】:

您可以为此使用一个案例:

select  sum(case when Column1 is null then 1 end) as Col1Count
,       sum(case when Column2 is null then 1 end) as Col2Count
from    table1

【讨论】:

谢谢,这个查询中的情况我从未使用过,但这给了我正确的输出

以上是关于如何写sql语句去掉oracle返回结果中的空值(NULL)的主要内容,如果未能解决你的问题,请参考以下文章

怎样把一条SQL语句查询出的结果集中的空值替换成0

sql 查询时有空值返回0怎么写

检查 MS Access SQL 语句中的空值

关于Oracle的SQL语句中group by的空值问题请教?

SQL问题求助,查询结果如何清除NULL的空值

使用mysql中的select语句替换sql中的空值?