回答:
1.
はNUMERIC
(またはDECIMAL
)定数1
ですが、はINTEGER
定数です。不必要な(または望ましくない)暗黙的な型変換を回避するために、定数のデータ型を明示的に指定すると便利な場合があります。
たとえば、
create table t(f1 int);
insert into t values (2);
次いで、select 1/f1 from t
リターン0
(INTEGER
)、一方、select 1./f1 from t
リターン0.5
(DECIMAL
)。
例の比較の左側にDECIMAL
列があり、DECIMAL
定数を明示的に指定すると、暗黙的な型キャストを回避してパフォーマンスをわずかに向上させることができると想定する人もいます。
1.
、ピリオドが原因で、リテラルを整数ではなくnumeric(1,0)として扱います。おそらく、それは式のデータ型と一致させるために指定されたものです(ベストプラクティス)。個人的には1.0
、その場合に指定します。