SQL查询仅列出结果中的 'non null'字段

标签 sql oracle11g oracle-sqldeveloper

我有一个包含 70 多列的表格。我经常在表中搜索单行。

例如:

select * from customer where customer_id='xyz';

customer_id 是唯一的。

在结果中,很可能有 30 到 40 列具有空值。

我总是只对非空字段感兴趣。

SQL 中有没有办法只列出那些非空的列?

PS:不幸的是,非空字段对于所有客户来说并不是相同的字段。假设,如果“客户 A”在“R 列”中为空,则“客户 B”在该列中可能具有有效值。最后,我的查询在任何给定时间始终只关注 1 个客户。

简单示例:

查询:

select * from customer where cust_id='826122';

实际结果:

cust_id - 826122

cust_fname - 玛莎

cust_lname - 凯恩

cust_alt_add - 空

cust_cell_acode - 210

cust_home_phone - 空

预期结果:(我不希望结果中出现空值列)

cust_id - 826122

cust_fname - 玛莎

cust_lname - 凯恩

cust_cell_acode - 210

最佳答案

你可以做类似的事情

SELECT * FROM Customer WHERE customer_id = 'xyz' AND some_col IS NOT NULL;

或者

SELECT * FROM Customer WHERE customer_id IS NOT NULL

希望有帮助。

编辑

在尝试找到合适的答案后,似乎很少有简单的方法可以做你想做的事情。我认为你最好的办法是使用此 post 中的答案.

尽管问题略有不同,但我认为您可能会发现这些答案很有帮助。对于无法为您提供您正在寻找的答案,我深表歉意。

关于SQL查询仅列出结果中的 'non null'字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16025861/

相关文章:

sql - JSONB:用作表达式的子查询返回的多行

sql - Oracle 11 中由函数引起的表变化

database - 我们可以在同一台机器上安装 Hyper-V 和 Oracle DB 11g 吗?这是否违反 Hyper-V 的最佳实践?

Oracle SQL Developer - 如何使用颜色(而不是数字)显示百分比

oracle - Oracle SQL Developer 中的日志记录页面弹出窗口

java - 在java中从一个类访问另一个类的JDBC连接变量

mysql - SQL LEFT JOIN OR 条件的更好方法

mysql - 为什么触发器不在架构范围内?

ms-access - Access mdb 没有给出正确的结果

sql - 如何在 SQL Developer 中将 .sql 文件作为包文件打开?