16.20 - Examples of Character Data in a CASE Expression: Example 1 - Teradata Vantage NewSQL Engine

Teradata Vantage™ SQL Functions, Expressions, and Predicates

prodname
Teradata Database
Teradata Vantage NewSQL Engine
vrm_release
16.20
category
Programming Reference
featnum
B035-1145-162K

The server character set of the result of the following query is UNICODE because the CASE expression contains more than 1 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 since 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;