使用 CASE 语句在 Teradata 中创建新列

Creating a new column in Teradata using CASE statement

我正在尝试使用 CASE 语句

在 Teradata 的 table 中创建一个新列

我正在尝试根据 table 中名为 ID_Number 的原始列,从 CASE 语句创建一个名为 ID_Number_Mod 的新列。下面是我的代码

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;

我收到以下语法错误

"expected something like a name or a Unicode delimited identifier between '(' and the 'case' keyword

尝试将您的查询更改为

alter table Table_A
    add ID_Number_Mod as (
        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);