数値の桁あふれを防ぐためのCASTの使用 - Teradata Database - Teradata Vantage NewSQL Engine - 数値から数値への変換、数値の桁あふれを防ぐためのCASTの使用。

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

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/xnq1529717274657.ditamap
dita:ditavalPath
ja-JP/xnq1529717274657.ditaval
dita:id
B035-1143
Product Category
Software
Teradata Vantage

Teradata SQLのコンパイラの動作の性質上、大きな値が予期される場合は必ず式の引数にCASTを使用するのは重要なことです。

例えば、f1がDECIMAL(14,2)と定義されており、これを整数倍する、あるいはSUM(f1)を計算するとします。

この場合に、以下の演算について考慮してみます。

CAST(f1 AS DECIMAL(18,2))*100

または

SUM(CAST(f1 AS DECIMAL(18,2)))

上記の方法は、正しい結果集合を得るための適切な方法です。

一方、次のように式の結果をキャストするとします。

CAST(f1*100 AS DECIMAL(18,2))

または

CAST(SUM(f1) AS DECIMAL(18,2)

このとき、計算時(およびCASTが作成される前)に、望むような結果ではない、オーバーフローが発生することがあります。