Los nombres en el lado derecho de la asignación se refieren a los valores antiguos de las columnas, independientemente del orden en que se encuentren.
Esto (por ejemplo) le permite intercambiar dos valores sin usar una variable temporal.
UPDATE foo
SET a = b,
b = a
http://sqlfiddle.com/#!3/f6984/1
La especificación SQL-92 (Sección 13.10, Reglas generales, Artículo 6 en la página 395) establece: