• But that's because you changed the order. The proviso was that the UNION operator is the last one to be evaluated. If you use parentheses to make it so, you get the same results as before:

    SELECT * FROM (VALUES (1), (1), (2)) x(A)

    UNION

    (SELECT * FROM (VALUES (2), (3), (3)) y(B)

    UNION all

    SELECT * FROM (VALUES (4),(3)) z(C))

    John

    Edit - I think I understand what you're saying. I need to play around and see what happens when you have more than one UNION. I'll see if I get time to do that tomorrow.