[ORACLE]最初の有効値を返すCOALESCE・・・読み方分からねぇw

投稿日:

知らなかったら、多分CASEとかで判定してた。

まぁ、人の書いたSQLは勉強になるよねって話・・・じゃないなw

事の発端は、今のプロジェクトで別の人が作った画面の修正をやることになったこと。

その人は、1ヶ月以上前にプロジェクトからフェードアウトしていったので、今更修正をお願いなんて出来ないということで、俺に白羽の矢が立った。

というか、この修正をやるときには、修正できるプログラマは俺一人って状況だったけどねw

初めて見たCOALESCE

ぶっちゃけ、必要な時にググって使えりゃいいだろって感じなので、いちいち関数の細かい使い方までは覚えてないし、自分から新規開拓しにいくことも無い。

ただ、今回はCOALESCEが使われていて、見たこと無いし、欲しい値が確認できないし~で調べたら、最初の有効値を返すと。

select coalesce(null,null,9,null,1) as value
from dual;

分かりやすくnullにしたけど、テーブルの判定したい項目とか、他のテーブルとのJOINの結果とかかな。

実行すると、9が表示される。

■001

最初にnullじゃない値は「9」なので。

例えば、これを単純に分岐で書こうとすると、こんな感じになる。

SELECT
    CASE 
    WHEN NULL IS NOT NULL 
      THEN 1 
    WHEN NULL IS NOT NULL 
      THEN 2 
    WHEN 9 IS NOT NULL 
      THEN 3 
    WHEN NULL IS NOT NULL 
      THEN 4 
    WHEN 1 IS NOT NULL 
      THEN 5 
    ELSE '' 
    END AS VALUE 
FROM
  dual; 

うげ・・・長いわw







-ORACLE, 開発メモ
-,

関連記事

SyntaxHighlighter EvolvedっていうWordPressのプラグインを使ったら、楽にソースコードを表示できた。

SyntaxHighlighter Evolvedっていうプラグインを使って、コードの表示を楽にしてみた。 C#で正規表現が使えたらな〜って時は以外と多いので、ちょっと正規表現を頑張って使ってみた。 …

「別のプログラムがこのフォルダーまたはファイルを開いているので、操作を完了できません。」と表示された場合の対処法:Windows7

今日は2017年秋期の情報処理試験でしたが、受験されたみなさまいかがでしたでしょうか? ろくすっぽどころか、参考書すら買ってない状態だけど、情報処理試験の午前だけは受けに行く(起きれたら)。 午前は択 …

ORACLEでDELETEとTRUNCATEのどちらを使うか。

未だに迷う。 例えば、テーブル全件削除をしたいときは delete * from tableA; delete文なら、こうだし。 truncate tableA; truncate文なら、こう。

devenvを使って、プロジェクトをコマンドラインからビルドする方法[VisualStudio]

今日も今日とて休日出勤\(^o^)/   現在、C#をメイン言語として使用しています。 で、当然というか、開発の区切りだったり、テストするためにビルドというものをやります。 このビルド、プロ …

ダイナミックディスクのクローン作成に失敗したから、結局、OSのクリーンインストールをせざるを得なかった。

SSDへの移行失敗しました。 無料で使えるEaseUS Todo BackUp のフリー版を使ったけど、クローンが作成できなかった・・・ コピー後、起動しようとしても、お馴染みのOSディスクが無いぜ? …


カテゴリー