使用 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);
我正在尝试使用 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);