选择sql中同一行的最小值

时间:2017-01-26 11:38:44

标签: sql

我想在不同列的同一行中选择日期的最小值。

e.g。

column1       column2     column3
2017-01-26  2017-01-28  2017-01-27

在以上三列中,我想选择最小日期,即选择结果应为2017-01-26

2 个答案:

答案 0 :(得分:3)

大多数数据库支持least()greatest()

select least(column1, column2, column3) as min_column,
       greatest(column1, column2, column3) as max_column

在任何数据库中,您都可以使用ANSI标准case作为逻辑:

select (case when column1 >= column2 and column1 >= column3 then column1
             when column2 >= column3 then column2
             else column3
        end) as max_column

(然后是分钟的类似逻辑)

答案 1 :(得分:1)

如果使用SQL Server,您可以使用以下方法:

SELECT (SELECT MIN(columnX) FROM (VALUES(column1), (column2), (column3)) x(columnX))
FROM ...