SQL辞典

【SQL変換関数】NVL2 – NULL値を変換する(Oracle)

投稿日:2009年8月29日 更新日:

NVL関数がバージョンアップ?したNVL2関数があります。NVL2はOracleのコマンドで、以下の通りにNULL値を別の値に変換することができます。

構文:

NVL2(式, 値1, 値2)

式の値がNULL以外であれば値1を返し、NULLの場合は値2を戻す。

使用例:給料とボーナスの合計を求める

SELECT name, salary, bonus, NVL2(bonus, salary+bonus, salary)

name     salary      bonus    NVL2(bonus, salary+bonus, salary)
————————————————————————————————-
Yamada    200000    100000    300000
Tanaka    150000             150000
Kawai     300000    130000    430000

salary+bonusのような演算でbonusがNULL値の場合はsalary+bonusは何の値も返しません。ですので、上記のようにNULL値を別の値に変換する必要があるのです。

SQLコマンド辞典に戻る

広告

広告

-SQL辞典


comment

関連記事

no image

【SQL日付関数】EXTRAC – 日付から任意の日付要素を取得する (Oracle)

Oracleで、日付値から任意の日付要素(年、月、日など)を取得するにはEXTRACT関数を使います。例えば、EXTRACT関数を使えば、2008-09-22という日付値から、月を取得すると09という …

no image

【SQL集計関数】COUNT関数 ? 行数をカウントする (Oracle、SQL Server)

行数をカウントするにはCOUNT関数を使います。COUNT関数はDISTINCTで修飾すると、重複を取り除いた合計を抽出できます。 使用例:社員数をカウントする SELECT COUNT(*) FRO …

no image

【SQL文字列関数】CHARINDEX – 文字列の位置を求める(SQL Server)

SQL ServerのCHARINDEX関数は文字列の位置を返します。例えば、「Windows」という文字列からdの位置を求めると4となります。sの位置は7となります。大文字小文字の区別はありません。 …

no image

【SQL文字列関数】INITCAP – 文字列の先頭を大文字に変換する(Oracle、SQL Server)

OracleやSQL Serverで文字列の先頭だけを大文字にするには、INITCAPを使います。 構文: INITCAP(word) wordの先頭文字のみ大文字にする。 使用例:単語の先頭を大文字 …

no image

【SQL文字列関数】RIGHT – 文字列の右部分(末尾)から文字を抽出(SQL Server)

SQL ServerではRIGHT関数を使用して文字列の右部分(末尾)から指定した文字数だけ文字を抽出することができます。左側(先頭)から抽出する場合はLEFT関数を使用します。 文法: RIGHT( …

広告

転職