変換ファンクションおよび条件式の使用
データ型の変換
TO_CHAR
数値型データを文字型データに変換する
TO_CHAR(n [, 'format' ])
- 数値nを文字列に変換
- 数値書式formatを省略すると、nの有効桁数を保持するために十分な長さの文字列に変換
- 数値書式formatを指定すると、指定された書式に基づき文字列に変換
例
SQL> SELECT TO_CHAR(12345.67, '999,999.999') FROM dual;
結果
12,345.670
書式要素 | 説明 | 例 | 結果例 |
---|---|---|---|
9 | 9の数が有効な桁数を表す | 999999 | 12345 |
0 | 桁数に満たない場合、先頭にゼロを付けた数値を表す | 099999 | 012345 |
$ | $記号を数値の前に付けて表す | $99999 | $12345 |
L | ローカル通貨記号を数値の前に付けて表す | L99999 | ¥12345 |
C | 指定した位置にISO通貨記号を付けて表す | C99999 | JPY12345 |
D | 指定した位置に小数点を付けて表す | 999D999 | 12.345 |
. | 指定した位置に小数点を付けて表す | 999.999 | 12.345 |
G | 指定した位置に桁区切りを付けて表す | 99G999 | 12,345 |
, | 指定した位置に桁区切りを付けて表す | 99,999 | 12,345 |
有効桁数が不足した場合
実際の数値データよりも数値要素の桁数が足りない場合、「#」で表示
例(整数部の桁数が不足)
SQL> SELECT TO_CHAR(12345.67, '9,999.999') FROM dual;
結果
#########
TO_NUMBER
文字型データを数値型データに変換する
TO_NUMBER(str [, 'format' ])
- 文字列strを数値書式formatに基づき数値に変換
例
SQL> SELECT TO_NUMBER('$19,456', '$99G999') FROM dual;
結果
19456
暗黙的なデータ型変換
- 数値型の列に、文字列を設定しようすると暗黙的なデータ型変換が行われる
- 文字列から日時型への暗黙的なデータ型変換
NVL
NULLを異なる値に置き換える
NVL(in, replace)
- inがNULLの場合、値をreplaceに置き換える。
- inがNULLでない場合、置き換えは実行せず、inを戻す。
- inのデータ型と、replaceのデータに型が異なる場合、replaceをinのデータ型に暗黙的に変換。
COALESCE
複数の値のうち、最初に見つかった非NULL値を戻す
COALESCE(in1, in2, ...., inN)
- in1からinNの中で最初に見つかったNULLではない値を戻す
- in1からinNのすべてがNULLの場合、NULLを戻す
- in1からinNは同じデータ型である必要がある