次のSQLケースステートメントがあります。
select tracking_num,
case
when source_one is not null then source_one
else source_two
end source_value
from ...
source_one と source_two は倍精度です。上記の SQL を実行すると、返される source_value 列は int 精度です。
同僚は、列名の先頭に ohd_ を追加することを提案しました。
select tracking_num,
case
when source_one is not null then source_one
else source_two
end ohd_source_value
from ...
これにより、正しい値が返されます (返される列の名前は「source_value」です)。
ohd_ プレフィックスはオラクルの標準ですか? ドキュメントがどこにも見つかりません。また、この変換を実行するためのより良い方法はありますか? おそらく、CAST キーワードを使用してですか?
返信ありがとうございます。
DB バージョン: Oracle Database 11g Enterprise Edition リリース 11.2.0.3.0 - 64bit
編集:私が言及した ohd_ プレフィックスのフォローアップとして。これは、オラクルのバグ #1312311 の回避策としてクライアントに組み込まれていることがわかりました。OHDは「Oracle Hack Double」の略らしい。