代码之家  ›  专栏  ›  技术社区  ›  shorton

SQL Server从3列中选择最小日期[重复]

  •  -1
  • shorton  · 技术社区  · 5 年前

    这个问题已经有了答案:

    我有一张有几个日期字段的表。我需要得到一个派生字段,它是3个特定字段中最早的日期。我必须为4个不同的日期集做这个。

    1 回复  |  直到 5 年前
        1
  •  1
  •   Zohar Peled    5 年前

    一个简单的方法是使用 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
    

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