17.10 - CASE式における文字データの例: 例1 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQL関数、式、および述部

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1145-171K-JPN
Language
日本語 (日本)

次に示す問合わせ結果のサーバー文字セットは、UNICODEになります。これは、CASE式に複数の非リテラル文字式が含まれ、それらの文字セットが異なるためです。

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

次の問合わせでは、THEN/ELSE句にFLOAT値とVARCHAR値が含まれているCASE式からVARCHARの結果が戻されます。FLOATのデフォルト書式が30文字未満の文字列であり、USERがVARCHAR(30) CHARACTER SET UNICODEとして設定されているため、結果の長さは30になります。USERがUNICODEであるため、結果はCHARACTER SET UNICODEとなります。

   SELECT a, CASE
                WHEN a=1 
                THEN TIME
                ELSE USER
               END
   FROM table_1
   ORDER BY 1;