SQL在多列中找到至少一个不为空的SQL

时间:2018-02-23 17:49:11

标签: sql db2

我有一个非关键属性很少的表。我想知道如何编写查询来查找关键列,我可以在这些列中查找不是空行的任何一行。

例如1:

Key1 Key2 NonKey1 NonKey2    
k1   k2   nk1      nk2    
k1   k2   null     nk2    
k1   k2   nk1      null  

例如2:

Key1 Key2 NonKey1 NonKey2 NonKey3    
k1   k2   null     nk2     nk3
k1   k2   nk1      nk2     null

预期:

Key1 Key2 NonKey1 NonKey2
k1   k2   nk1      nk2

3 个答案:

答案 0 :(得分:1)

您是否只想为每个非键列获取一个值?

select key1, key2, max(nonkey1), max(nonkey2)
from mytable
group by key1, key2;

答案 1 :(得分:0)

这样的事情:

    select key1, key2, max(nonkey2), max(nonkey3)
    from MyTable
    having max(nonkey2) is not null or max(nonkey3) is not null
    group by key1, key2

(这是SQL Server,但你明白了。)

答案 2 :(得分:0)

其他方法:

select distinct key1, key2
from MyTable
where nonkey2 is not null and nonkey3 is not null