如果列包含错误数据,例如:
45612345698 (456)123-7452 125-145-9856
没有固定数据。有没有可能有一个1251459856的sql查询,然后返回列中的第3项?
iqih9akk1#
嗯。你可以用 replace() :
replace()
where replace(replace(replace(col, '-', ''), '(', ''), ')', '') = '1251459856'
qxgroojn2#
如果您的数据不只是“-”、“”、“(”那么您可以选择一个更通用的解决方案,并使用以下命令删除任何非数字字符
WITH sample_data_tab (str) AS ( SELECT '45612345698' FROM DUAL UNION SELECT '(456)123-7452' FROM DUAL UNION SELECT '125-145-9856' FROM DUAL UNION SELECT '989 145 9856' FROM DUAL ) SELECT regexp_replace(str, '[^0-9]', '') FROM sample_data_tab
2条答案
按热度按时间iqih9akk1#
嗯。你可以用
replace()
:qxgroojn2#
如果您的数据不只是“-”、“”、“(”那么您可以选择一个更通用的解决方案,并使用以下命令删除任何非数字字符