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】NODUPはソート時に全ての変数における重複を削除する

今回はNODUPについて解説します。 前回NODUPKEYについて解説しました。 【SAS】NODUPKEYはソート時に重複を削除する 今回のNODUPは前回の文法の亜種という感じです。 /*nodu …

【SAS】WHEREステートメントはIFステートメントと同様に処理条件を設定できる。(分岐)

今回はWHEREステートメントについて解説します。 /* where */ data data1; Id1=1111; Char1=”AAAA”; output; Id1=2222; Char1=”B …

【SAS】サブクエリについて解説

今回はSQLのfrom句にサブクエリを使用した場合の動きについて、解説します。 [from句] まずは通常のSQLプロシージャから。 /* サブクエリ(from句_1) */ data data1; …

【SAS】WORKライブラリの性質について解説

今回はWORKライブラリについて解説します。 libnameを使わなくてもデフォルトで存在するライブラリです。 そのため、libnameを使わずにworkライブラリを使用することができます。 /* l …

no image

【SQL】【Snowflake】ストアドプロシージャを利用する方法【CREATE OR REPLACE PROCEDURE】【DROP PROCEDURE】【SHOW PROCEDURES】【CALL】

今回はSnowflakeでストアドプロシージャを利用する方法について解説していきます。 テーブルの作成 まず、テーブルを新規作成します。 (参考:【SQL】【Snowflake】テーブルの更新【CRE …