次に示す問合わせ結果のサーバー文字セットは、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;