SQL NULL ソート順

PC

SQLでNullを含んだカラムのソートって悩ましいですね。
時と場合によって、Nullの入ったものは一番上に来てほしかったり、一番下に来てほしかったり。
Oracleだと「ORDER BY」の中にNullの扱いをどうするかをあらかじめ組み入れられるようなのですが、SQL SERVERにはそういうものはありません。

でも、別に自分でその仕組みを作ってやればいいのですね。
調整したいカラム名がNullのときとそうでないときに場合分けをして、便宜的に0,1を代入し、それをORDER BYの中に独立してソート列に使うというやり方を見つけました。
たとえばORDER BYに

 CASE WHEN Strike_Price IS NULL THEN 1 ELSE 0 END
,Strike_Price DESC

とすれば、この場合は「Strike_Price」の降順ではあるものの、NULLであるものは一番下、というソートができます。
上段で、Strike_Priceがあるものは0、ないものは1と置いて、その昇順をつけておいてから、下段でStrike_Priceの降順にしているからです。

ちょっとした工夫なのですが、Nullの扱いがなんとなく視覚的にもわかるので、他のSQLでも使いたい気がします。

Nullがあったりなかったりするデータのほうがおかしいのだ、という意見はごもっとも。
でも、今回の事例でいうと、扱うのは、先物やオプション、現株が混在するポートフォリオだったりするので、オプション以外は「Strike_Price=行使価格」を持たないですからね・・・。

SQL本

達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ (CodeZine BOOKS) [ ミック ]
達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ (CodeZine BOOKS) [ ミック ] 2,750円(税込)【送料込】

楽天ブックス

CodeZine BOOKS ミック 翔泳社タツジンニマナブエスキューエルテッテイシナンショ ダイニハン ショキュウシャデオワリタクナイアナタヘ ミック 発行年月:2018年10月11日 予約締切日:

SQL 第2版 ゼロからはじめるデータベース操作 (プログラミング学習シリーズ) [ ミック ]
SQL 第2版 ゼロからはじめるデータベース操作 (プログラミング学習シリーズ) [ ミック ] 2,068円(税込)【送料込】

楽天ブックス

プログラミング学習シリーズ ミック 翔泳社エスキューエルダイニハン ゼロカラハジメルデータベースソウサ ミック 発行年月:2016年06月16日 ページ数:336p サイズ:単行本 ISBN:9784

SQL実践入門──高速でわかりやすいクエリの書き方 (WEB+DB PRESS plus) [ ミック ]
SQL実践入門──高速でわかりやすいクエリの書き方 (WEB+DB PRESS plus) [ ミック ] 2,838円(税込)【送料込】

楽天ブックス

WEB+DB PRESS plus ミック 技術評論社SQLジッセンニュウモン──コウソクデワカリヤスイクエリノカキカタ ミック 発行年月:2015年04月 予約締切日:2015年04月10日 ページ

SQLクックブック 第2版 データベースエキスパート、データサイエンティストのための実践レシピ集 [ Anthony Molinaro ]
SQLクックブック 第2版 データベースエキスパート、データサイエンティストのための実践レシピ集 [ Anthony Molinaro ] 4,400円(税込)【送料込】

楽天ブックス

データベースエキスパート、データサイエンティストのための実践レシピ集 Anthony Molinaro Robert de Graaf オライリー・ジャパンエスキューエルクックブックダイニハン アンソ

SQLポケットリファレンス改訂第4版 (Pocket reference) [ 朝井淳 ]
SQLポケットリファレンス改訂第4版 (Pocket reference) [ 朝井淳 ] 2,178円(税込)【送料込】

楽天ブックス

Pocket reference 朝井淳 技術評論社エスキューエル ポケット リファレンス アサイ,アツシ 発行年月:2017年02月 ページ数:656p サイズ:単行本 ISBN:978477418

楽天ウェブサービスセンター
タイトルとURLをコピーしました