非通貨数値情報の形式設定文字 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - データ タイプおよびリテラル

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/zsn1556242031050.ditamap
dita:ditavalPath
ja-JP/zsn1556242031050.ditaval
dita:id
B035-1143
Product Category
Software
Teradata Vantage

FORMAT句内で通貨記号や二重通貨記号が使われていない場合、数値情報は非通貨とみなされます。非通貨数値情報の形式を制御するには、FORMAT句に次の文字を使います。

文字 意味
G SDFのGroupingRuleによって定義されるグループ化ルールを呼び出します。

SDFのGroupSeparatorの値が出力文字列にコピーされ、小数点文字より左にある数字が、GroupingRuleによって定義されるグループ化ルールに従ってグループに区切られます。グループ化は、REAL、FLOAT、またはDOUBLE PRECISIONのデータの整数部分に適用されます。

Gは、FORMAT句の最初の文字でなければなりません。

FORMAT句に文字Gが含まれていないなら、出力文字列においてグループ化は実行されません。

次の文字を含むFORMAT句には、Gを指定できません。
  • ,
  • /
  • :
  • S
D 小数点記号。

FORMAT句の中にDが出現するたびに、現在のSDFのRadixSeparatorの値がそこにコピーされます。

次の文字を含むFORMAT句には、Dを指定できません。
  • ,
  • /
  • :
  • S
  • V
/

:

%

挿入文字。

出力文字列のうち、FORMAT句で指定した場所にコピーされます。

%挿入文字は、Sの入ったFORMAT句には指定できません。また、G、D、またはEの入ったFORMAT句の中の数字と数字の間に指定することはできません。例えば、G9999D99%は有効ですが、9(9)D99%E999は無効です。

次の文字を使ったFORMAT句には、/および:の挿入文字を指定できません。
  • G
  • D
  • S
, グループ化文字。

カンマは、数字がすでに出現した場合にだけ挿入されます。

カンマは、SDF中のGroupSeparatorの値とは関係なく、常にグループ化文字として解釈されます。

次の文字を含むFORMAT句には、カンマを指定できません。
  • G
  • D
  • S
小数点文字。

ピリオドは、SDF中のRadixSeparatorの値とは関係なく、常に小数点文字として解釈され、出力文字列にコピーされます。

次の文字を含むFORMAT句には、ピリオドを指定できません。
  • G
  • D
  • V
  • S
B 挿入文字。

出力文字列のうち、FORMAT句でBを指定した場所にブランクがコピーされます。

Bは、G、D、またはEの入ったFORMAT句の中の数字と数字の間には指定できません。例えば、999B99B9999は有効ですが、G9(9)BD99は無効です。

+

-

符号文字。

形式設定文字列の先頭または末尾には指定できますが、文字Zまたは文字9の途中の位置には指定できません。1つの符号文字が、出力文字列の固定位置で編集文字と置き換わります。

これらの文字が2つ以上左にある場合、その符号は浮動します(宣言された構造のとおりに、数字のすぐ左の位置に移動します)。反復する符号文字は、常に小数点文字と形式設定文字9の組み合わせより左側になければなりません。

文字Zの反復グループを含むFORMAT句の中に一群の反復符号文字が含まれている場合、文字Zのグループは、符号文字グループの直後になければなりません。例: --ZZZ

任意の数字の右側には、1個の後置符号文字を指定できますが、またBと組み合わせることも可能です。例えばG9(I)B+となります。

仮数部の後置符号文字を、指数部より右側に指定することはできません。例えば、999D999E+999+は無効です。

+は+または-に適宜変換され、-は-またはブランクに変換されます。

V 暗黙の小数点位置。

内部的には、計算用に正しく数値を位置合わせするために、Vが小数点とみなされます。

小数点は暗黙のものであるため、記憶域上の位置を占めることはなく、出力に含められることもありません。

Vは、D小数点記号または小数点文字(.)を含むFORMATには、Vを指定できません。

Z ゼロ抑制される小数の桁。

ある桁がゼロでその前の桁もゼロの場合、ブランクに変換されます。

カンマ、ドット、G、またはDを組み合わせたもの、および文字Z(Z(I)やZ(F)も含む)を使用していて、その他の形式設定文字を使用していないFORMAT句は、「0の場合はブランク」ということになります。

例えば、数値が0の場合、ZZZZZ,ZZ.Z、およびZ,ZZZ.ZZは、ブランクのみを出力します。

A Zは単独の9の後には指定できません。

反復するZ文字は、常に小数点文字と形式設定文字9の組み合わせより左側になければなりません。

小数点文字より右側にある文字として、文字9と文字Zの組み合わせを指定することはできません。すべて9か、すべてZでなければなりません。すべてZの場合、小数点文字より左側の文字はすべてZでなければなりません。

符号文字の反復グループを含むFORMAT句の中に文字Zの反復グループが含まれている場合、文字Zのグループは、符号文字グループの直後になければなりません。例: --ZZZ

9 小数の桁(ゼロ抑制されない)。
CHAR(n) ある文字が複数回出現する場合、CHARには次のものを指定できます。
  • - (符号文字)
  • +
  • Z
  • 9
そしてnには次のものを指定できます。
  • 整数定数
  • I
  • F

nがFの場合、CHARに使用できるのはZまたは9だけです。

nが整数定数の場合、(n)の表記は、その文字がn回繰り返されることを意味します。IとFの意味については、この表のもっと後で説明します。

I 数値データおよび整数データの整数部分を表示するために必要な文字数。
Iを使用できるのは、n(CHAR)文字シーケンスのnの部分としてだけです(このテーブルのCHAR(n)の説明を参照)。CHARには、次のものを指定できます。
  • - (符号文字)
  • +
  • Z
  • 9
CHAR(I)は一度しか指定できず、次の型に対してのみ有効です。
  • DECIMAL/NUMERIC
  • BYTEINT
  • SMALLINT
  • INTEGER
  • BIGINT

Iの値は、数値データの形式設定中に解決されます。その値は、データ型の宣言から取得されます。例えば、DECIMAL(10,2)タイプの場合、Iは8になります。

FORMAT句の中にCHAR(I)も含まれているなら、CHAR(F)はCHAR(I)の右側になければならず、さらにCHAR(I)とCHAR(F)の間に次の文字のいずれかがなければなりません。
  • D
  • V
F 数値データの小数部分を表示するために必要な文字数。
Fを使用できるのは、n(CHAR)文字シーケンスのnの部分としてだけです(このテーブルのCHAR(n)の説明を参照)。CHARには、次のものを指定できます。
  • Z
  • 9

CHAR(F)は、DECIMAL/NUMERICデータ型に対して有効です。

Fの値は、通貨数値データの形式設定中に解決されます。その値は、データ型の宣言から取得されます。例えば、DECIMAL(10,2)タイプの場合、Fは2になります。

Fの値が0の場合には、そのデータの小数部分は表示されません。しかし、FORMAT句にDが含まれている場合には、現在のSDFのRadixSeparatorの値が出力文字列にコピーされます。

CHAR(F)は一度しか指定できません。FORMAT句の中にCHAR(I)も含まれているなら、CHAR(F)はCHAR(I)の右側になければならず、さらにCHAR(I)とCHAR(F)の間に次の文字のいずれかがなければなりません。
  • D
  • V
- ダッシュ文字。

電話番号、社会保障番号、およびアカウント番号などの数字を表示する場合に使用されます。

ダッシュが最初の桁の後、または最後の桁の前にある場合、これは符号文字ではなく、埋込みのダッシュであるとみなされます。

ダッシュは、次の文字の後には指定できません。
  • ,
  • +
  • G
  • D
  • E
  • S
  • V
U+6642 時

U+5206 分

U+79D2 秒

漢字によるJI、FUN、およびBYOUの時間マーカー。

各マーカーは、それぞれ一度ずつしか指定できません。

漢字時間マーカーについては、FORMAT句と日付/時刻の形式、および日本語文字セットを参照してください。

S 符号付きゾーン小数文字。

符号付きのゾーン小数の入力を数データ型として定義し、数値の出力を符号付きのゾーン小数の文字列として表示します。

符号付きのゾーン小数入力を数値データ型に変換する場合、最後の文字は以下のルールに従って変換されます。
  • 最後の文字={または0、数値変換はn … 0
  • 最後の文字=Aまたは1、数値変換はn … 1
  • 最後の文字=Bまたは2、数値変換はn … 2
  • 最後の文字=Cまたは3、数値変換はn … 3
  • 最後の文字=Dまたは4、数値変換はn … 4
  • 最後の文字=Eまたは5、数値変換はn … 5
  • 最後の文字=Fまたは6、数値変換はn … 6
  • 最後の文字=Gまたは7、数値変換はn … 7
  • 最後の文字=Hまたは8、数値変換はn … 8
  • 最後の文字=Iまたは9、数値変換はn … 9
  • 最後の文字=}、数値変換は-n … 0
  • 最後の文字=J、数値変換は-n … 1
  • 最後の文字=K、数値変換は-n … 2
  • 最後の文字=L、数値変換は-n … 3
  • 最後の文字=M、数値変換は-n … 4
  • 最後の文字=N、数値変換は-n … 5
  • 最後の文字=O、数値変換は-n … 6
  • 最後の文字=P、数値変換は-n … 7
  • 最後の文字=Q、数値変換は-n … 8
  • 最後の文字=R、数値変換は-n … 9

数値出力を符号付きのゾーン小数文字列として表示する場合、最後の文字は以下のように符号を示します。

最後のデータ桁が0の場合、最後の桁が表示されます。
  • 結果が正の数の場合は{
  • 結果が負の数の場合、}
最後のデータ桁が1の場合、最後の桁が表示されます。
  • 結果が正の数の場合、A
  • 結果が負の数の場合、J
最後のデータ桁が2の場合、最後の桁が表示されます。
  • 結果が正の数の場合、B
  • 結果が負の数の場合、K
最後のデータ桁が3の場合、最後の桁が表示されます。
  • 結果が正の数の場合、C
  • 結果が負の数の場合、L
最後のデータ桁が4の場合、最後の桁が表示されます。
  • 結果が正の数の場合、D
  • 結果が負の数の場合、M
最後のデータ桁が5の場合、最後の桁が表示されます。
  • 結果が正の数の場合、E
  • 結果が負の数の場合、N
最後のデータ桁が6の場合、最後の桁が表示されます。
  • 結果が正の数の場合、F
  • 結果が負の数の場合、O
最後のデータ桁が7の場合、最後の桁が表示されます。
  • 結果が正の数の場合、G
  • 結果が負の数の場合、P
最後のデータ桁が8の場合、最後の桁が表示されます。
  • 結果が正の数の場合はH
  • 結果が負の数、Q
最後のデータ桁が9の場合、最後の桁が表示されます。
  • 結果が正の数の場合はI
  • 結果が負の数の場合、R
FORMAT句で、Sは最後の小数の桁の後であることが必要です。Sは、同じ句で、以下の文字と共に使用することはできません。
  • %
  • +
  • :
  • /
  • -
  • ,
  • D
  • G
  • Z
  • F
  • E

符号付きゾーン小数変換の例と詳細については、<Teradata Vantage™ - SQL関数、式、および述部、B035-1145>の「符号付きゾーンDECIMAL変換」を参照してください。

E 指数用の記法。

仮数部の終わりと指数部の始めを定義します。

指数部は、任意で指定する1個の+または-符号文字、そしてその後に指定する1個以上の形式設定文字9とで構成されます。

FN9 最大64文字の可変長形式を、以下のように指定します。

1.値が負の場合は「-」の符号文字が生成され、それ以外の場合はスペースが生成されます。

2.値の整数部が生成されます(先行ゼロまたは空白なし)。

3.小数部がある場合は、SDFのRadixSeparatorの値が生成され、小数部を表わすために必要な最小桁数が続きます。

4.結果の列が64文字より長い場合、値はFNE形式を使用して形式化されます。この形式は、この表のもっと後で説明します。

FNE 可変長の指数形式を、以下のように指定します。
  1. 基礎となる型の切り上げ/切り捨てのメソッドに従って、値の切り上げ/切り捨てが行なわれます(最大38桁の精度)。
  2. 値が負の場合は「-」の符号文字が生成され、それ以外の場合はスペースが生成されます。
  3. 仮数の桁精度が1桁で十分な場合は、その桁が生成されます。それ以外の場合は、最上位桁が生成され、その後にSDFのRadixSeparatorの値が続きます。次に、残りの仮数の桁(最大37桁)が生成されます。
  4. 文字「E」が生成されます。
  5. 符号付きの2桁(必要な場合は3桁)の指数が生成されます。