Oracle SQL用于处理空值

时间:2014-02-23 08:21:19

标签: sql oracle

我有一个包含3列的表:c1,c2和c3。 我想编写一个select语句,这样如果c1和c2都为null,则显示c3,否则显示c1。

在上述场景中编写select语句的最佳方法是什么?

1 个答案:

答案 0 :(得分:7)

使用CASE

CASE WHEN C1 IS NULL AND C2 IS NULL
     THEN C3
     ELSE C1
END

使用NVL2

NVL2(C1,C1,NVL2(C2,C1,C3))

OR

NVL2(C1||C2,C1,C3)

使用DECODE

DECODE(C1,NULL,DECODE(C2,NULL,C3,C1),C1)

可读性和易用性CASE获胜。