繁体   English   中英

在SQL的同一行中选择最小值

[英]select min value in same row in sql

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

例如

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

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

大多数数据库都支持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

(然后,最小逻辑类似。)

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM