Создание нового столбца в Teradata с помощью оператора CASE - PullRequest
0 голосов
/ 29 января 2019

Я пытаюсь создать новый столбец в таблице в Teradata с помощью оператора CASE

Я пытаюсь создать новый столбец с именем ID_Number_Mod из оператора CASE на основе исходного столбца с именем ID_Number из таблицы,Ниже мой код

alter table Table_A
add  (case
when char_length(cast(cast(ID_Number as bigint) as varchar(50)))=12 then cast('999000' as char(6)) || cast(cast( substr(cast(cast(ID_Number as bigint) as char(12)), 4, 12) as bigint) as char(15))
else ID_Number end) as ID_Number_Mod float;

Я получаю приведенную ниже синтаксическую ошибку

"ожидалось что-то вроде имени или идентификатора, разделенного Unicode, между ключевым словом '(' и ключевым словом case)

1 Ответ

0 голосов
/ 29 января 2019

Попробуйте изменить запрос на

alter table Table_A

добавить ID_Number_Mod как (случай, когда char_length (приведение (приведение (ID_Number как bigint) как varchar (50))) = 12, затем приведение ('999000' как char(6)) || cast (cast (substr (cast (cast (ID_Number как bigint) как char (12)), 4, 12) как bigint) как char (15)), иначе ID_Number end);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...