web-dev-qa-db-ja.com

InformaticaのCaseステートメント/デコード関数

Informatica PowerCenter Designerでケースステートメントを書くのを手伝ってくれる人はいますか?私はInformaticaにかなり慣れていないため、限られた経験に基づいて、ケースステートメントはサポートされていないと感じています。同様の機能を持つデコード関数がありますが、構文に関する良い例を見つけることができません。

Informaticaでcaseステートメント/デコード関数を使用する方法について具体的な例を誰かに教えていただければ幸いです。

あなたの助けをありがとう!

11
Ashish Sachdeva

そのとおりです。CASEステートメントはありませんが、DECODEを使用してシミュレートできます。

DECODE( TRUE
      , DECIMAL_PORT > 0, 'positive value'
      , DECIMAL_PORT < 0, 'negative value'
                        , 'zero' )

これは、次のTransact-SQL CASEステートメントと同等です。

CASE
  WHEN DECIMAL_PORT > 0 THEN 'positive value'
  WHEN DECIMAL_PORT < 0 THEN 'negative value'
  ELSE 'zero'
END

仕組みは次のとおりです。

  • 最初のパラメータはハードコードされたTRUE値です。
  • パラメータ(2番目、4番目など)も条件
  • 奇数パラメーター(3番目、5番目など)は戻り値
  • 最後のパラメータはデフォルトの戻り値
  • 1番目のパラメーターの値に評価される最初の条件(つまり、真である最初の条件)が、返される値を決定します。
  • どの条件も満たされない場合は、最後のパラメーターが返されます。
18

条件付きロジックの実装によく使用されるIIF()関数も見てください。

IIF(DECIMAL_PORT > 0, 'positive value', IIF(DECIMAL_PORT < 0 ,'negative value', 'zero'))
3
arturro