多个NVL()替代 - 首先不是null参数

时间:2014-07-22 08:52:16

标签: sql oracle11g nvl

目前我有类似的东西:

NVL(COL1, NVL(COL2, NVL(COL3, NVL(COL4, NVL(COL5, COL6)))))

在Oracle 11gR2中是否有任何返回第一个NOT NULL参数的函数?

2 个答案:

答案 0 :(得分:2)

使用COALESCE()函数,它在表达式列表中返回第一个非空值。

SELECT COALESCE(col1,col2,col3,col4,col5,col6)
FrOM tableName

答案 1 :(得分:2)

也许您正在寻找COALESCE()

请注意,几乎所有khown数据库都支持COALESCE():Oracle,PostgreSQL,MySQL,MSSQL,SQLite。