sql select包含错误数据

ifmq2ha2  于 2021-08-09  发布在  Java
关注(0)|答案(2)|浏览(246)

如果列包含错误数据,例如:

45612345698
 (456)123-7452
 125-145-9856

没有固定数据。有没有可能有一个1251459856的sql查询,然后返回列中的第3项?

iqih9akk

iqih9akk1#

嗯。你可以用 replace() :

where replace(replace(replace(col, '-', ''), '(', ''), ')', '') = '1251459856'
qxgroojn

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

相关问题