2017-01-26 2 views
0

Я хочу выбрать минимальное значение дат в одной строке разных столбцов.выберите значение min в той же строке в sql

например.

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

в этих трех колонках я хотел бы, чтобы выбрать мин дату, т.е. результат выбора должен быть 2017-01-26

+0

Пожалуйста, добавьте тег с типом базы данных + версии –

+0

Пожалуйста, помечать с базой данных, которую вы используете , –

ответ

2

Большинство баз данных поддерживают 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

При использовании SQL Server, вы можете использовать этот подход:

SELECT (SELECT MIN(columnX) FROM (VALUES(column1), (column2), (column3)) x(columnX)) 
FROM ... 
Смежные вопросы