È possibile al SELECT
minimo o al massimo tra due o più valori. Avrei bisogno di qualcosa del genere:
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
Posso ottenerlo solo usando MySQL?
È possibile al SELECT
minimo o al massimo tra due o più valori. Avrei bisogno di qualcosa del genere:
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
Posso ottenerlo solo usando MySQL?
Risposte:
È possibile utilizzare LEAST
e GREATEST
funzione per raggiungerlo.
SELECT
GREATEST(A.date0, B.date0) AS date0,
LEAST(A.date1, B.date1) AS date1
FROM A, B
WHERE B.x = A.x
Entrambi sono descritti qui http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html
Fai solo attenzione se è probabile che NULL si trovi in un valore di campo ...
SELECT LEAST(NULL,NOW());
e
SELECT GREATEST(NULL,NOW());
entrambi restituiscono null, che potrebbe non essere quello che vuoi (specialmente nel caso di GRANDE)