Во-первых, в вашем примере column3
- это столбец в таблице, поэтому его следует использовать в последующих выражениях:
CREATE VIEW name AS
SELECT column1, column2, column3,
(CASE WHEN SUBSTRING(column3, 1, 6) = 'Case 01' THEN ...
WHEN SUBSTRING(column3, 1, 6) = 'Case 02' THEN ...
WHEN SUBSTRING(column3, 1, 6) = 'Case 03' THEN ...
. . .
END) AS column4
FROM random_table;
Обратите внимание, что скобки вокруг подзапроса не обязательны.
Если вы присвоили псевдоним столбцу, вы можете использовать ключевое слово calculated
:
CREATE VIEW name AS
SELECT column1, column2, column3 as col3,
(CASE WHEN SUBSTRING(calculated col3, 1, 6) = 'Case 01' THEN ...
WHEN SUBSTRING(calculated col3, 1, 6) = 'Case 02' THEN ...
WHEN SUBSTRING(calculated col3, 1, 6) = 'Case 03' THEN ...
. . .
END) AS column4
FROM random_table;
calculated
- расширение proc sql
.Я не знаю ни одной другой базы данных, которая бы его поддерживала.
Альтернативой является использование подзапроса или CTE.