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変換関数】DECODE – 値を変換する(Oracle)

OracleではDECODE関数を使って、値を変換する事ができます。使い方はCASE命令と似ています。CASE命令で書き換える事も可能です。 文法: DECODE( x, target, new_va …

no image

【SQL集計関数】SUM関数 – 合計値を求める(Oracle、SQL Server)

OracleやSQL Serverなどで列の合計値を求めるにはSUM関数を使います。集計関数の中でSUM関数が一番良く使われる関数です。引数にDISTINCTを修飾すると重複を除いた合計を求める事がで …

no image

【SQL文字列関数】CHAR、CHR – ASCIIコードを文字に変換する(SQL Server、Oracle)

ASCIIコードを文字に変換するにはCHAR(SQL Serverの場合)もしくはCHR(Oracleの場合)を使用します。 使用例:ASCIIコードを文字に変換する SELECT ascii_cod …

no image

【SQL集計関数】MIN ? 最小値を返す (Oracle、SQL Server)

指定した列の最小値を求めるにはMIN関数を使用します。使い方はMAX関数と同じで数値型、日付型、文字列の最小値を求める事ができます。 使用例:社員の一番低い給料を返す SELECT MIN(salar …

no image

【SQL日付関数】DATENAME – 日付要素を文字として取得する(SQL Server)

SQL Serverでは日付値から日付要素を文字列をして取得する為にDATENAME関数を使う事ができます。 文法: DATENAME(element, value) valueに指定した日付値の日付 …

広告

転職