将 char 转换为 int TeraData Sql
Convert char to int TeraData Sql
我正在尝试将列从 char (8) 转换为整数,以便使用整数实现参照完整性。 IT 不起作用,我测试了 select 以检查演员阵容。 Utente_cd 是一个 char (8) 列
SEL
CAST(UTENTE_CD AS INTEGER)
FROM TABLEA
Teradata 产生此错误:
SELECT Failed. 2621: Bad character in format or data of TABLEA.
有时 char 列还包含我应该丢弃的字母数字代码。
在 TD15.10 中你可以做 TRYCAST(UTENTE_CD AS INTEGER)
这将 return 一个 NULL 而不是失败。
之前有多种方式:
-- TO_NUMBER returns NULL when failing
CAST(TO_NUMBER(UTENTE_CD) AS INTEGER)
-- check if there are only digits
CASE WHEN UTENTE_CD = '' -- all spaces
THEN NULL
WHEN LTRIM(UTENTE_CD, '0123456789') = '' -- only digits
THEN CAST(UTENTE_CD AS INTEGER)
ELSE NULL
END
我正在尝试将列从 char (8) 转换为整数,以便使用整数实现参照完整性。 IT 不起作用,我测试了 select 以检查演员阵容。 Utente_cd 是一个 char (8) 列
SEL
CAST(UTENTE_CD AS INTEGER)
FROM TABLEA
Teradata 产生此错误:
SELECT Failed. 2621: Bad character in format or data of TABLEA.
有时 char 列还包含我应该丢弃的字母数字代码。
在 TD15.10 中你可以做 TRYCAST(UTENTE_CD AS INTEGER)
这将 return 一个 NULL 而不是失败。
之前有多种方式:
-- TO_NUMBER returns NULL when failing
CAST(TO_NUMBER(UTENTE_CD) AS INTEGER)
-- check if there are only digits
CASE WHEN UTENTE_CD = '' -- all spaces
THEN NULL
WHEN LTRIM(UTENTE_CD, '0123456789') = '' -- only digits
THEN CAST(UTENTE_CD AS INTEGER)
ELSE NULL
END