S_a_k_Uの日記みたいなDB

~サクゥーと呼ばないで~

SELECT文の結果とLIMIT OFFSETとORDER BY

HiRDBってSELECT文の結果の順番が、実行する度に変わるんね。
というか、当然そうじゃわなと今更ながらに納得してしまった(汗
ということで、LIMIT OFFSETでページングする場合に、表示されないデータが発生するので、必ず主キーに相当するカラムでソートするようにした。
で、表示上のソートより下位のソートに主キーに相当するカラムでソートするようにORDER BYにカラムを無条件で追加した。
そしたら、今度は、

KFPA11123-E Duplicate columns "ID" in "ORDER BY" clause[PrdbStatement.prepare][HiRDB_CONNECTION_ID(sds01:5509:6612)]

ってな感じで、ORDER BYのカラムが重複してるよって。
こんなSQLな訳で、

select * from hoge order by id, id;

確かにあんたの言う通りかもしれんけど…って感じ。
ちなみに、PostgreSQLOracleも、ORDER BYのカラムが重複しとっても、何事もなかったように実行してくれる。
SELECT文の結果の順番については保証されてないと思うけど、ORDER BYのカラムの重複ってSQLの仕様的にどうなん???