查询以查找一行中最多三列

时间:2013-11-11 18:17:38

标签: sql oracle plsql

我在表中有三个日期,对于每条记录,我需要找出最多三列,如果列为空则需要忽略,请问这个可以帮忙吗?

我使用的是oracle 10g版本。

Table-1
---------
SL NO date1 date2 date3 age

3 个答案:

答案 0 :(得分:4)

由于GREATEST将返回NULL,如果您传递的任何值为NULL,则需要GREATESTCOALESCE的组合:< / p>

SELECT GREATEST(
    COALESCE(date1, date2, date3)
,   COALESCE(date2, date1, date3)
,   COALESCE(date3, date1, date2)
)
FROM my_test_table

答案 1 :(得分:1)

您可以使用GREATEST函数,它返回给定n个参数中最大的一个:

SELECT GREATEST(date1, date2, date3)
FROM   table1

答案 2 :(得分:0)

如果我理解正确(你的帖子不是很清楚),你可以使用GREATEST功能:

sslect
...,
GREATEST (date1,date2,date3)
from...