Работая с базой данных Pervasive SQL, у меня есть сложный оператор SQL SELECT, который содержит следующее:
CASE l."Position"
WHEN 3 THEN "PIC"
WHEN 4 THEN "SIC"
WHEN 22 THEN "FA"
ELSE ''
END AS "Position"
l."Position"
сохраняется в базе данных как TINYINT. Очевидно, я пытаюсь вернуть строку - в основном конвертировать числовой код в понятную метку. Но результат в этом столбце всегда равен 0
, потому что (по-видимому) он выводит целочисленное поле, а "PIC" (например) равен 0, когда приводится как число. Если я изменю это на ...
CASE l."Position"
WHEN 3 THEN 123
WHEN 4 THEN 456
WHEN 22 THEN 789
ELSE ''
END AS "Position"
... он возвращает трехзначные числа, как и ожидалось, поэтому я знаю, что само дело работает нормально.
Как мне сказать Case () вернуть строку / varchar?