Ho una tabella con tre colonne; la prima colonna contiene gli ID e le altre due colonne contengono le date (dove al massimo uno è nullo, ma non credo che questo dovrebbe influenzare nulla). Come dovrei fare per ordinare gli ID in base a quale data è più grande? Ho provatoOrdine SQL da due diverse colonne (eventualmente null)
ORDER BY CASE
WHEN date1 > date2 THEN date1
ELSE date2
END
ma questo non ha funzionato. Qualcuno può aiutarmi? Inoltre, tutti i problemi simili che ho visto altri post lo hanno fatto in modo che la query ordina i risultati in base alla prima colonna, e quindi se la prima colonna è nullo, la seconda colonna. Dovrei prima definire ogni singolo valore null? Sto creando questo tavolo con un join esterno completo, quindi sarebbe una domanda completamente diversa da chiedere, quindi si spera che possa essere fatto con valori null.
L'espressione 'CASE' mi sembra soddisfacente, tranne nel fatto che non supporta il caso in cui' date2' è nullo; per supportare anche questo, si vorrebbe scrivere (dire) 'ORDER BY CASE WHEN date1> date2 OR date2 IS NULL THEN date1 ELSE date END'. Ma tu dici che "non ha funzionato". Può essere più preciso? Ad esempio, puoi pubblicare dati reali che non vengono ordinati correttamente? – ruakh
Gabe, quale database eseguirà la query? –
Mi dispiace, pensavo che funzionassero tutti allo stesso modo. Ma sto usando Oracle. Non so se è abbastanza specifico per voi ragazzi. : S –