記事検索

検索ワードを入力してください。
Sky Tech Blog
NULLの​ソート順は​RDBMSに​よって​変ります

NULLの​ソート順は​RDBMSに​よって​変ります

NULLを許容した列のソート結果はRDBMSによって異なり、Oracleでは一番下、SQL ServerとMySQLでは一番上に配置されます。各RDBMSでNULLの順番は制御可能ですが、移植性に影響します。標準SQLの使用が推奨されます。

NULLを許容した列をソートした場合の結果で、NULLはどの位置にくるかは、RDBMSによって扱いが違います。

Oracle 一番下 NULLは無限大として扱われるためです。 順番の制御は、ORDER BYのキーワードNULLS FIRST、NULLS LAST(昇順のデフォルト)で可能です。もしくはCASE式でも制御は可能です。
SQL Server 一番上 順番制御はCASE式が使えます
MySQL 一番上 順番制御はCASE式が使えます。 または、ORDER BY句に「IS NULL ASC」で一番下にできます。

NULLの扱いはRDBMSによって違うため、この点は理解しておかないと アプリケーション仕様にも影響します。

また、各RDBMSでNULLの順番は制御できますが、たとえばOracleの「NULLS FIRST/LAST」もMySQLの「IS NULL ASC」もいわゆる方言になるので、DBの移植性が下がります。

プロジェクト方針に関する話になりますが、使うSQLを標準SQLに縛るのも先々の柔軟性に秀でていると思います。


\シェアをお願いします!/
  • X
  • Facebook
  • LINE
キャリア採用募集中!

入社後にスキルアップを目指す若手の方も、ご自身の経験を幅広いフィールドで生かしたいベテランの方も、お一人おひとりの経験に応じたキャリア採用を行っています。

Sky株式会社のソフトウェア開発や製品、採用に関するお問い合わせについては、下記のリンクをご確認ください。
お問い合わせ
ホーム