0

太数据问题。我需要select那些列有超过 4 个连续数字的行mycolumn

我尝试了以下

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 不会给我访问权限)

4

1 回答 1

1

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

cast(char2hexint((substring( mycolumn from (char_length(mycolumn) - 4)))) as char(10)) like '3_3_3_3_3_'
于 2013-10-22T16:12:49.163 回答