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

楽天ブックス

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

スッキリわかるSQL入門 第4版 ドリル256問付き! (スッキリわかる入門シリーズ) [ 中山 清喬 ]
スッキリわかるSQL入門 第4版 ドリル256問付き! (スッキリわかる入門シリーズ) [ 中山 清喬 ] 3,080円(税込)【送料込】

楽天ブックス

スッキリわかる入門シリーズ 中山 清喬 飯田 理恵子 インプレススッキリワカルエスキューエルニュウモンダインヨンハンドリルニヒャクゴジュウロクモンツキ ナカヤマキヨタカ イイダリエコ 発行年月:202

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

楽天ブックス

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

SQL1年生 データベースのしくみ SQLiteで体験してわかる!会話でまなべる! [ リブロワークス ]
SQL1年生 データベースのしくみ SQLiteで体験してわかる!会話でまなべる! [ リブロワークス ] 2,178円(税込)【送料込】

楽天ブックス

リブロワークス 翔泳社エスキューエルイチネンセイ データベースノシクミ エスキューライトデタイケンシテワカルカイワデマナベル リブロワークス 発行年月:2023年10月16日 ページ数:192p サイ

改訂第4版 すらすらと手が動くようになる SQL書き方ドリル [ 羽生 章洋 ]
改訂第4版 すらすらと手が動くようになる SQL書き方ドリル [ 羽生 章洋 ] 2,860円(税込)【送料込】

楽天ブックス

羽生 章洋 和田 省二 技術評論社カイテイダイヨンハンスラスラトテガウゴクヨウニナルエスキューエルカキカタドリル ハブ アキヒロ ワダ ショウジ 発行年月:2025年01月24日 予約締切日:2025

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