从多列中的记录中选择最小日期

bru*_*lin 2 sql db2

嗨,我有以下表格结构:

Person    Date1             Date2............Daten
------    -----             -----            -----
1         2001-01-01        2002-01-01
2         2003-01-01        2000-01-01
Run Code Online (Sandbox Code Playgroud)

我想选择Date1和Date(n)之间的最小日期(在我的情况下为20个日期).因此,例如,它将为Person1选择Date1,为Person2选择Date2.

很明显,如果我只有1个日期列,我可以使用min(Date),但在这种情况下我无法理解我的逻辑.

非常感谢.

wil*_*ser 5

SELECT person AS the_person
  , LEAST(date1 ,date2, date3, date4, date5, ..., dateN ) AS the_date
FROM the_table ;
Run Code Online (Sandbox Code Playgroud)

Least()应该忽略NULL,如果存在的话.(以上为Postgres的作品)

更新(感谢@WarrenT)显然DB2没有LEAST(),但确实有MIN()(有多个参数).

SELECT person AS the_person
  , MIN(date1 ,date2, date3, date4, date5, ..., dateN ) AS the_date
FROM the_table ;
Run Code Online (Sandbox Code Playgroud)