Teradata错误:格式或数据包含错误字符
我从下面的查询中得到错误“格式或数据包含坏字符”。column1的数据类型是Teradata错误:格式或数据包含错误字符,teradata,Teradata,我从下面的查询中得到错误“格式或数据包含坏字符”。column1的数据类型是VARCHAR(2000)。这是column1的字符串'ROC 2236 00 ROC'示例,我希望得到的结果是'2236.00' SELECT ORDER_NUMBER, CASE WHEN COLUMN1 LIKE 'ROC%' THEN CAST(OREPLACE(TRIM(COALESCE(SUBSTR('COLUMN1',5, 8),0)),' ','.' ) AS DEC(12,2) END
VARCHAR(2000)
。这是column1的字符串'ROC 2236 00 ROC'
示例,我希望得到的结果是'2236.00'
SELECT ORDER_NUMBER,
CASE WHEN COLUMN1 LIKE 'ROC%' THEN CAST(OREPLACE(TRIM(COALESCE(SUBSTR('COLUMN1',5, 8),0)),' ','.' ) AS DEC(12,2) END
FROM TABLE1
WHERE CAST(COLUMN1 AS DEC(12,2)) > 0
在没有实际数据的情况下很难测试这一点,但是乍一看,您正在尝试将单词column1转换为十进制 您的where子句正在进行直接转换,在提供示例数据的情况下,它不希望将“ROC”转换为十进制 试一试
我发现使用功能
TRIM
工作得更好。我认为这个错误是前导/尾随空格造成的
SELECT
ORDER_NUMBER
, CASE WHEN COLUMN1 LIKE 'ROC%' THEN
CAST(OREPLACE(TRIM(COALESCE(SUBSTR(COLUMN1,5, 8),0)),' ','.' ) AS DEC(12,2))
END
FROM TABLE1
WHERE CAST(OREPLACE(TRIM(COALESCE(SUBSTR(COLUMN1,5, 8),0)),' ','.' ) AS DEC(12,2)) > 0