単純なCASE文 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLストアド プロシージャおよび埋め込みSQL

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/vqj1592443206677.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1148
Product Category
Software
Teradata Vantage

この形式の条件付き文では、operand_1 (値式)がoperand_2 (値式)に等しいかどうかに応じて、最大限1つのWHEN句またはELSE句に関連したSQL制御文などのSQL文のリストを実行することができます。

WHEN句は、CASE文内に指定されている順序で評価されます。評価のプロセスは次のとおりです。

  1. 最初のWHEN句が評価されます。
    • CASE句で指定されている値式(operand_1)がWHEN句内の値式(operand_2)に等しければ、そのWHEN句の文が実行されます。
    • ストアド プロシージャ内の次の文に制御権が渡されます。値式が等しくない場合に、次のWHEN句が存在すればその句が評価されます。
  2. 後続のすべてのWHEN句は、ステップ1で説明した方法で評価されます。
  3. 評価するWHEN句がなくなった場合に、ELSE句が存在すればそれが新たな対象とされ、そのELSE句の文が実行されます。ストアド プロシージャ内の次の文に制御権が渡されます。
  4. ELSE句がない場合にCASE句内の値式が、WHEN句のどれにも一致しなければ、
  • 実行時例外(”Case not found for CASE statement”, SQLSTATE=’20000’, SQLCODE = 7601)が発生します。
  • CASE文の実行が終了します。