2016-09-09 3 views

ответ

0

Я бы ожидать что-то вроде этого, чтобы работать:

where col rlike '[0-9]{2}$' 

Ваш код имеет trim(); Вы можете включить эту логику в выражении, а также:

where col rlike '[0-9]{2}[ ]*$' 

Я бы рекомендовал такую ​​упрощенную логику в исходной системе, а также.

0

substr(col,length(col)-1) возвращает последние два символа

cast(substr(col,length(col)-1) as int) возвращает NULL, если последние два символа не является цифрой

Вы можете проверить case when cast(substr(col,length(col)-1) as int) is NULL/is not NULL then ...

примеры:

select substr('abcdef12',length('abcdef12')-1) возвращается 12

cast(substr('abcdef12',length('abcdef12')-1) as int) вернуть s 12

cast(substr('abcdef1x',length('abcdef1x')-1) as int) возвращает NULL

Добавить накладку() при необходимости

Смежные вопросы