带有案例选择的Teradata sql查询失败。3706
我试图在Teradata中创建一个查询,但它给了我替换视图失败。3706:语法错误:应在“')和“,”之间带有案例选择的Teradata sql查询失败。3706,sql,join,case,teradata,Sql,Join,Case,Teradata,我试图在Teradata中创建一个查询,但它给了我替换视图失败。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
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
将视图替换为
选择
a、 身份证,
a、 性,
x、 出生日期作为出生日期,
当(子字符串((x.cfisc_de),12,5)=''时,则x.cfisc_de else null结束为PIVA_CD,
当(子字符串((x.cfisc_de),12,5)')然后x.cfisc_mask_de else null结束为cfisc_CD时,
来自表1 a
内连接表2 x
在a.ID\u CD=x.ID\u CD上
Teradata支持两种不同的子字符串:
SUBSTRING(col FROM n FOR m)
SUBSTR(col, n , m)
你写的是两者的混合体。根据某些ODBC设置,这可能会起作用(ODBC驱动程序会自动将其更改为有效的SQL,但仅在SELECT中),但在创建或使用.NET/JDBC/CLI时会失败。Teradata支持两种不同的子字符串:
SUBSTRING(col FROM n FOR m)
SUBSTR(col, n , m)
你写的是两者的混合体。根据某些ODBC设置,这可能会起作用(ODBC驱动程序会自动将其更改为有效的SQL,但仅在SELECT中),但在创建或使用.NET/JDBC/CLI时会失败。您使用的是哪个Teradata版本?在第二个案例后删除逗号(就在从之前)。您使用的是哪个Teradata版本?在第二个案例后删除逗号(就在从的前面)。