【发布时间】:2019-06-28 15:20:01
【问题描述】:
我有一个包含多个日期字段的表格。我需要得到一个派生字段,它是 3 个特定字段中最早的日期。我必须为 4 个不同的日期集执行此操作。
【问题讨论】:
标签: sql sql-server tsql
我有一个包含多个日期字段的表格。我需要得到一个派生字段,它是 3 个特定字段中最早的日期。我必须为 4 个不同的日期集执行此操作。
【问题讨论】:
标签: sql sql-server tsql
一种简单的方法是使用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
这也使您能够轻松获得最小值。
【讨论】: