Example: Differing Character Sets - Teradata Vantage

Teradata® VantageCloud Lake

Deployment
VantageCloud
Edition
Lake
Product
Teradata Vantage
Published
January 2023
Language
English (United States)
Last Update
2024-04-03
dita:mapPath
phg1621910019905.ditamap
dita:ditavalPath
pny1626732985837.ditaval
dita:id
phg1621910019905

The server character set of the result of the following query is UNICODE because the CASE expression contains more than one nonliteral character expressions with differing character sets.

   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;

In the following query, the CASE expression returns a VARCHAR result because the THEN  and  ELSE clause contains FLOAT and VARCHAR values. The length of the result is 30 because the default format for FLOAT is a string less than 30 characters, and USER is defined as VARCHAR(30) CHARACTER SET UNICODE. The result is CHARACTER SET UNICODE because USER is UNICODE.

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