带有 case-SELECT 的 Teradata sql 查询失败。 3706
Teradata sql query with a case-SELECT Failed. 3706
我正在尝试在 Teradata 中创建查询,但它显示 REPLACE VIEW Failed。 3706: 语法错误:应在“)”和“,”之间。
replace VIEW view as
select
a.ID_CD,
a.SEX ,
x.BIRTHDATE as BIRTHDATE_DT,
case when (substring((x.cfisc_de), 12 , 5)=' ') then x.cfisc_de else null end as PIVA_CD,
case when (substring((x.cfisc_de), 12 , 5)<>' ') then x.cfisc_mask_de else null end as CFISC_CD,
FROM table1 a
INNER JOIN table2 x
ON a.ID_CD=x.ID_CD
Teradata 支持子字符串的两种变体:
SUBSTRING(col FROM n FOR m)
SUBSTR(col, n , m)
你写了两者的混合体。根据某些 ODBC 设置,这可能有效(它被 ODBC 驱动程序自动更改为有效 SQL,但仅在 SELECT 内),但在 CREATE 或使用 .NET/JDBC/CLI 时会失败.
我正在尝试在 Teradata 中创建查询,但它显示 REPLACE VIEW Failed。 3706: 语法错误:应在“)”和“,”之间。
replace VIEW view as
select
a.ID_CD,
a.SEX ,
x.BIRTHDATE as BIRTHDATE_DT,
case when (substring((x.cfisc_de), 12 , 5)=' ') then x.cfisc_de else null end as PIVA_CD,
case when (substring((x.cfisc_de), 12 , 5)<>' ') then x.cfisc_mask_de else null end as CFISC_CD,
FROM table1 a
INNER JOIN table2 x
ON a.ID_CD=x.ID_CD
Teradata 支持子字符串的两种变体:
SUBSTRING(col FROM n FOR m)
SUBSTR(col, n , m)
你写了两者的混合体。根据某些 ODBC 设置,这可能有效(它被 ODBC 驱动程序自动更改为有效 SQL,但仅在 SELECT 内),但在 CREATE 或使用 .NET/JDBC/CLI 时会失败.