そうだね - そこには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
これはどのように動作するのですか:
- 第1パラメータはハードコードですD
TRUE
値、(ように、第2及び第4)
- もパラメータ条件あり、(ように第3、第5及び)
- 奇数パラメータ戻り値であり、
- 最後のパラメータでありますデフォルトの戻り値,
- 第1パラメータの値に評価される最初の条件(つまり、最初の条件がtrueの場合)は返される値を決定します。条件のいずれも満たさない場合は、最後のパラメータが返されます。
- また、多くの場合、条件ロジックを実装するために使用されるIIF()関数で
これは動作しますが、条件の数が増えると、それはまたすぐに厄介になります。 'DECODE'はより読みやすい表現を書くことを可能にします。 –