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

Con*_*... 6 sql oracle

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

select * from table1 where 
column1 is not null 
and column2 is not null
and column3 is not null
Run Code Online (Sandbox Code Playgroud)

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

sza*_*ani 0

您可以使用

COALESCE (expr1, expr2)
Run Code Online (Sandbox Code Playgroud)

这相当于

CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE expr2 END
Run Code Online (Sandbox Code Playgroud)

你的语法是

coalesce(column1,....,columnn) is not null
Run Code Online (Sandbox Code Playgroud)