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が作成される前)に、望むような結果ではない、オーバーフローが発生することがあります。