# CHAR 関数

CHAR関数により固定長の文字列への変換値が返されます。

行われる変換は以下のとおりです。

- 文字列変換 一つ目の引数が文字列である場合です。
- 日時変換 一つ目の引数が日付、時刻、タイムスタンプである場合です。
- 小数変換 一つ目の引数が小数である場合です。
- 倍精度浮動小数点数変換 一つ目の引数がDOUBLEあるいはREALである場合です。
- 整数変換 一つ目の引数がSMALLINT、INTEGER、BIGINTである場合です。

一つ目の引数は、その型が組込みのデータ型である必要があります。CHAR関数の返り値は固定長の文字列です。一つ目の引数はNULLとすることができ、その場合は返り値はNULLです。一つ目の引数は、その型がXMLであってはなりません。もしXMLの値を固定長のCHARにしたいのなら、SQL/XML直列化演算子のXMLSERIALIZEを使う必要があります。

#### 文字から文字への変換を行う時の書き方

    CHAR (文字式 [, 数] )

文字式
  CHAR、VARCHAR、LONG VARCHAR、CLOBのいずれかのデータ型の値を返す式。
数
  返却される固定長文字列の長さ。値は0から254の間でなければならない。

もし文字式の長さが数よりも小さかった場合、長さが数と等しくなるよう、関数の結果は空白によりつめられます。もし文字式の長さが数より大きかった場合、切捨てが行われます。もし空白以外の文字が切り捨てられ、文字式が長い文字列(LONG VARCHARやCLOB)でなければ、警告が返されます。

#### 整数から文字への変換を行うときの書き方

    CHAR (整数式 )

整数式
  整数のデータ型(SMALLINT、INTEGER、BIGINT)型の値を返す式

関数の結果は、SQLの整数として渡された引数を文字列で表現したものとなります。結果は引数の数を10進で表すn文字および、もし引数が負数であったなら負の符号から構成されます。また結果は左詰めされています。

- もし一つ目の引数がSMALLINTなら、結果の文字列の長さは6です。もし結果にて数値の文字数が6に満たない場合は、6文字となるよう右側に空白が詰められます。
- もし一つ目の引数がINTEGERなら、結果の文字列の長さは11です。もし結果にて数値の文字数が11に満たない場合は、11文字となるよう右側に空白が詰められます。
- もし一つ目の引数がBIGINTなら、結果の文字列の長さは20です。もし結果にて数値の文字数が20に満たない場合は、20文字となるよう右側に空白が詰められます。

#### 日時から文字への変換を行うときの書き方

    CHAR (日時式 )

日時式
  式は次のデータ型の何れかです。
  - 日付: 結果は日付を表す文字表現です。結果の長さは10です。
  - 時刻: 結果は時刻を表す文字表現です。結果の長さは8です。
  - タイムスタンプ: 結果はタイムスタンプを表す文字表現です。結果の長さは26です。

#### 小数から文字への変換を行うときの書き方

    CHAR (小数式 )

小数式
  小数のデータ型を返す式です。もし精度や目盛りの変更を行う場合は、文字への変換を行う前にDECIMALというスカラー関数により変更してください。

#### 浮動小数点数から文字への変換を行うときの書き方

    CHAR (浮動小数点数式 )

浮動小数点数式
  浮動小数点数のデータ型(DOUBLEやREAL)の値を返す式です。

CHAR関数によりEDLEVEL(smallint型と定義されているとします。)の値を、固定長の文字列として返します。

    SELECT CHAR(EDLEVEL) FROM EMPLOYEE

EDLEVELが18とするなら、その値がCHAR(6)型で'18 'と返されます。(18に空白が4つ続きます。)
親トピック: 組み込み関数