我有一张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 - martha
cust_lname - kane
cust_alt_add - null
cust_cell_acode - 210
cust_home_phone - null
预期结果:(我不希望具有空值的列出现在我的结果中)
cust_id - 826122
cust_fname - martha
cust_lname - kane
cust_cell_acode - 210
答案 0 :(得分:3)
您可以执行类似
的操作SELECT * FROM Customer WHERE customer_id = 'xyz' AND some_col IS NOT NULL;
或者
SELECT * FROM Customer WHERE customer_id IS NOT NULL
希望有所帮助。
修改强>
在尝试找到合适的答案之后,似乎很少有简单的方法可以做你想做的事。我认为你最好的镜头是使用这个post的答案。
虽然问题略有不同,但我认为您可能会发现这些答案很有帮助。我为没有能够给你你想要的答案而道歉。