ASQL语句在表中搜索SSN编号,该数字最多可容纳4800 varchar



我正在搜索具有4800varchar。

的表中指示的SSN号码

我尝试了

ssn_msg喜欢'%[0-9] [0-9] [0-9] - [0-9] [0-9] - [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9]%'

,但它不起作用。我需要检查SSN的格式,即SSN 000-00-0000

从我阅读的内容中,DB2版本11应支持REGEXP_LIKE

WHERE REGEXP_LIKE(SSN_MSG, '[0-9]{3}-[0-9]{2}-[0-9]{4}')

对于早期的db2版本,可以使用fn:匹配函数,允许相同的正则表达式。

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

相关内容

  • 没有找到相关文章

最新更新