CASE式における文字データの例: 例2 - Teradata Database - Teradata Vantage NewSQL Engine - CASE式の例: CASE式における文字データの例。

Teradata Vantage™ SQL関数、演算子、式および述部

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/xzf1512079057909.ditamap
dita:ditavalPath
ja-JP/xzf1512079057909.ditaval
dita:id
B035-1145
Product Category
Software
Teradata Vantage

次の問合わせの結果は、5354エラー(引数はKANJI1タイプでなければならない)になります。これは、あるTHEN/ELSE式がKANJI1リテラルであり、その他のすべてのTHEN/ELSE式のサーバー文字セットがKANJI1ではないためです。

   SELECT i, CASE
               WHEN i=1 THEN column_l
               WHEN i=2 THEN column_u
               WHEN i=3 THEN column_j
               WHEN i=4 THEN column_g
               WHEN i=5 THEN _Kanji1'4142'XC
               ELSE column_k
             END
   FROM table_1
   ORDER BY 1;

この例では、以下のテーブル定義があるものとします。

   CREATE table_1
     (i        INTEGER,
      column_l CHARACTER(10) CHARACTER SET LATIN,
      column_u CHARACTER(10) CHARACTER SET UNICODE,
      column_j CHARACTER(10) CHARACTER SET KANJISJIS,
      column_g CHARACTER(10) CHARACTER SET GRAPHIC,
      column_k CHARACTER(10) CHARACTER SET KANJI1);

次の問合わせは、サーバー文字セットがGRAPHICであるため(文字タイプを持つ最初のTHENのサーバー文字セットがGRAPHICであるため)に失敗します。

   SELECT i, CASE
               WHEN i=1 THEN 4
               WHEN i=2 THEN column_g
               WHEN i=3 THEN 5
               WHEN i=4 THEN column_l
               WHEN i=5 THEN column_k
               ELSE 10
             END
   FROM table_1
   ORDER BY 1;