L'ordine di valutazione delle espressioni in select
è indefinito. Per la maggior parte, te ne accorgi solo quando hai delle variabili, perché gli errori generano informazioni errate.
Come mai? Lo standard SQL non richiede l'ordine di valutazione, quindi ogni database è libero di decidere come valutare le espressioni. In genere tali decisioni vengono lasciate all'ottimizzatore.