如何解析字符串中的数值?

时间:2013-10-21 20:06:54

标签: teradata

Teradata问题。我需要selectmycolumn

的连续数字超过4位的行

我尝试了以下

SELECT  id, SUBSTR( mycolumn, ((POSITION( '3' IN CHAR2HEXINT(TRANSLATE( mycolumn USING UNICODE_TO_LATIN) ))/2)+1),  5) mycolumndigits
FROM mytable
WHERE TRIM(mycolumndigits+' ') LIKE '_ _ _ _ _ '

有时候我会得到一个不可翻译的字符异常,其他时候会出现错误的异常

请帮助我改进它

(PS:我不允许使用Oracle函数(otranslate等)。我也无法创建存储过程和函数.DBA不会授予我访问权限)

1 个答案:

答案 0 :(得分:1)

如果总是在字符串末尾找到数字,这应该有效: 检查最后五个字符是否为数字。

cast(char2hexint((substring( mycolumn from (char_length(mycolumn) - 4)))) as char(10)) like '3_3_3_3_3_'