SQL Server从3列中选择最小日期

时间:2019-02-04 20:14:50

标签: sql sql-server tsql

我有一个带有多个日期字段的表。我需要获取一个派生字段,该字段是3个特定字段的最早日期。我必须为4个不同的日期集执行此操作。

1 个答案:

答案 0 :(得分:1)

一种简单的方法是使用case表达式:

select case when Date1 > Date2 and Date1 > Date3 then
           Date1 
       when Date2 > Date3 and Date2 > Date1 then
           Date2
       else
           Date3
       end As TheDate
from tableName

尽管这很简单,但是如果您有更多的列,它往往会变得非常麻烦。另一种选择是使用values子句,如下所示:

select (
    select max(date)
    from (values (date1, date2, date3))v(date)
) 
from tableName

这也使您能够轻松获得最小值。