MySQL Pilih minimum / maksimum di antara dua (atau lebih) nilai yang diberikan

126

Apakah mungkin untuk SELECTnilai minimum atau maksimum di antara dua atau lebih nilai. Saya butuh sesuatu seperti ini:

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

Bisakah saya mencapai ini hanya dengan menggunakan MySQL?

Carlos
sumber

Jawaban:

27

Saya kira Anda sedang mencari:

GREATEST()

dan

LEAST()

RandomSeed
sumber
10

Berhati-hatilah jika NULL kemungkinan besar berada dalam nilai bidang ...

SELECT LEAST(NULL,NOW());

dan

SELECT GREATEST(NULL,NOW());

keduanya mengembalikan nol, yang mungkin bukan yang Anda inginkan (terutama dalam kasus TERBESAR)

Steve Childs
sumber
2

Coba ini:

SELECT GREATEST(A.date0, B.date0) AS `date0`,LEAST(A.date0, B.date0) AS `date1`
  FROM A 
  JOIN  B
    ON A.id = B.role;
Mani
sumber