ORDER BY SAS SQL

【SAS】ORDER BY句無しで抽出した際の出力順【SQL】

投稿日:

この記事の要約:「ORDER BYを使わない場合、SQLで抽出した際の並び順は保証されない

SQL文で抽出を行った際に、困ったことが起きました。

同じPG文なのに1回目と2回目で出力結果に違いがあるのです。

仕事上でこんな事象が起きて、仕事上のPGを載せる訳にはいかないので、

このブログ記事を書いているプライベートPC上で再現をしようとしたのですが、

再現できませんでした。

なのでこれから貼るキャプチャはイメージ図として見ていただけると幸いです。

結論から言うと、「ORDER BYを使わない場合、SQLで抽出した際の並び順は保証されない」みたいです。

イメージ図で表すと、こんな感じ。

DBから抽出した且つ、ORDER BY句が無い時に、今回の事象が起こり得るようです。

体感ですが、DBから抽出する際に、件数が多いほど今回の事象が見られやすいかと思います。

今回の事象を回避するには、

といったことが有効だと考えられます。

-ORDER BY, SAS, SQL

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

【SAS】TIME関数はSAS時間値を取得する。

今回はTIME関数について解説します。 /* time_1 */ data data1; Id1 = time(); run; time()により、SAS時間値を取得する。 /* time_2 */ …

【SAS】ATTRIBとRENAMEを同時に使うときの注意点

今回はATTRIBとRENAMEを同時に使うときに注意するべきポイントについて解説していきます。 SAS日付となっているid1をddMONyyyy形式にして、id4とするケースを仮定します。 結論:A …

【SAS】^=(ノットイコール)

今回は^=について解説します。 /* ^=”” */ data data1; id=”A”; chiku=”SHINJUKU”; output; id=”B”; chiku=”ICHIGAYA”; o …

【SAS】FREQプロシージャは頻度集計とクロス集計をする その2【LIST】【CROSSLIST】【NOROW】【NOCOL】

今回はFREQプロシージャにオプションを用いた場合について解説します。  FREQプロシージャの基本的な使い方については過去記事で解説しています。⇒【SAS】FREQプロシージャは頻度集計とクロス集計 …

【SAS】「引用符で囲まれた文字列の後の識別子の意味は、将来のSASリリースで変わる可能性があります。」の対処法【NOTE】

今回は、 「引用符で囲まれた文字列の後の識別子の意味は、将来のSASリリースで変わる可能性があります。」 とログメッセージが出た時の対処法について解説します。 /* メッセージ_1 */ data d …