ページの先頭行へ戻る
Enterprise Postgres 10 アプリケーション開発ガイド
FUJITSU Software

B.2.1 文字列型の数値データと数字を比較したい

Oracleデータベース

SELECT DECODE( col1,
               1000, 'ITEM-A',
               2000, 'ITEM-B',
               'ITEM-C')
  FROM t1;

※col1はCHAR(4)型とします。

FUJITSU Enterprise Postgres

SELECT DECODE( CAST(col1 AS INTEGER),
               1000, 'ITEM-A',
               2000, 'ITEM-B',
               'ITEM-C')
  FROM t1;

※col1はCHAR(4)型とします。


機能差異
Oracleデータベース

変換対象値式と各検索値が、それぞれ文字列値と数値となる場合は、文字列値が比較対象となる数値のデータ型に変換されて比較します。

FUJITSU Enterprise Postgres

変換対象値式が文字列値である場合、各検索値を数値で指定できません。

移行手順

変換対象値式に指定できるデータ型は不定であるため、変換対象値式の値(例のcol1)をCASTを使用して明示的に数値(例ではINTEGER型)に変換してください。