MySQL Выберите минимум / максимум из двух (или более) заданных значений


126

Возможен SELECTминимум или максимум из двух или более значений. Мне нужно что-то вроде этого:

SELECT MAX_VALUE(A.date0, B.date0) AS date0, MIN_VALUE(A.date1, B.date1) AS date1
FROM A, B
WHERE B.x = A.x

Могу ли я добиться этого, используя только MySQL?


Ответы:




10

Просто будьте осторожны, если NULL может быть в значении поля ...

SELECT LEAST(NULL,NOW());

и

SELECT GREATEST(NULL,NOW());

оба возвращают null, что может быть не тем, что вы хотите (особенно в случае GREATEST)


2

Попробуй это:

SELECT GREATEST(A.date0, B.date0) AS `date0`,LEAST(A.date0, B.date0) AS `date1`
  FROM A 
  JOIN  B
    ON A.id = B.role;
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.