簡體   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