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版 ドリル222問付き! [ フレアリンク ]
スッキリわかるSQL入門第2版 ドリル222問付き! [ フレアリンク ] 3,080円(税込)【送料込】

楽天ブックス

ドリル222問付き! フレアリンク 中山清喬 インプレススッキリ ワカル エスキューエル ニュウモン フレアリンク ナカヤマ,キヨタカ 発行年月:2018年12月 予約締切日:2018年11月07日

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

楽天ブックス

ゼロからはじめるデータベース操作 プログラミング学習シリーズ ミック 翔泳社エスキューエルダイニハン ゼロカラハジメルデータベースソウサ ミック 発行年月:2016年06月16日 ページ数:319p

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

楽天ブックス

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

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

楽天ブックス

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

いちばんやさしい SQL 入門教室 [ 矢沢久雄 ]
いちばんやさしい SQL 入門教室 [ 矢沢久雄 ] 2,178円(税込)【送料込】

楽天ブックス

矢沢久雄 ソーテック社イチバンヤサシイ エスキューエル ニュウモンキョウシツ ヤザワヒサオ 発行年月:2019年05月22日 予約締切日:2019年04月22日 ページ数:240p サイズ:単行本 I

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