Я ищу номер SSN, который был указан в таблице с 4800 varchar.
Я пытался
SSN_MSG Like '% [0-9] [0-9] [0-9] - [0-9] [0-9] - [0-9] [0-9] [0-9] [ 0-9]% '
Но это не сработало. Мне нужно проверить формат SSN, который является SSN 000-00-0000
Для более ранних версий DB2 можно использовать функцию fn: match , которая допускает такое же регулярное выражение.
with tab (str) as ( select '123-45-6789' from sysibm.sysdummy1 union all select '123456789' from sysibm.sysdummy1 ) select str from tab where xmlcast(xmlquery('fn:matches($s, "[0-9]{3}-[0-9]{2}-[0-9]{4}")' passing str as "s") as int)=1; STR ----------- 123-45-6789
Из того, что я прочитал, DB2 версии 11 должна поддерживать REGEXP_LIKE:
REGEXP_LIKE
WHERE REGEXP_LIKE(SSN_MSG, '[0-9]{3}-[0-9]{2}-[0-9]{4}')