bが実際にテーブルにある項目名ならエラーになるんじゃないかと思ったが
手元のDBだと動いてるなw
order byされるのは結果セットで、結果セットではb=実項目aなので
aでorder byされてるっぽいけど
これが規定された動作なのかたまたまなのかはしらん