用case-SELECT失败的Teradata sql查询。 3706

时间:2016-09-02 09:30:05

标签: sql join case teradata

我正在尝试在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

1 个答案:

答案 0 :(得分:2)

Teradata支持子串的两种变体:

SUBSTRING(col FROM n FOR m)
SUBSTR(col, n , m)

你写了两者的混合物。根据某些ODBC设置,这可能有效(它由ODBC驱动程序自动更改为有效的SQL,但仅在SELECT中),但在CREATE或使用.NET / JDBC / CLI时将失败。