我想在不同列的同一行中选择日期的最小值。
e.g。
column1 column2 column3
2017-01-26 2017-01-28 2017-01-27
在以上三列中,我想选择最小日期,即选择结果应为2017-01-26
答案 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 ...