SQL中类似比较查询的内部多个替换函数

SQL中类似比较查询的内部多个替换函数,sql,oracle,Sql,Oracle,我在Oracle环境中工作。 我需要建立一个查询来搜索格式不正确的电话数据。 到目前为止,我得到了: select * from guest_db REPLACE(REPLACE(REGEXP_REPLACE(TEL1, '[[:space:]]*',''),'+',NULL),')',NULL),'(',NULL LIKE '% REPLACE(REPLACE(REPLACE(REXEXP_REPLACE('(0)1111 111111','[[:space:]]*',''),'+',NUL

我在Oracle环境中工作。 我需要建立一个查询来搜索格式不正确的电话数据。 到目前为止,我得到了:

select * from guest_db
REPLACE(REPLACE(REGEXP_REPLACE(TEL1, '[[:space:]]*',''),'+',NULL),')',NULL),'(',NULL
LIKE '% 
REPLACE(REPLACE(REPLACE(REXEXP_REPLACE('(0)1111 111111','[[:space:]]*',''),'+',NULL),')',NULL)'(',NULL)
||%';
困难在于在“%”符号之间放置第二个嵌套替换(替换函数,但不将它们转换为字符串。如果我构建此函数时没有这些百分号,则函数的行为类似于等号。它只返回精确匹配(显然没有特殊字符,如),(,+,)。。。
非常感谢您的帮助。

好的,解决了我必须用“%”| | replace(replace(…| |‘%”)连接函数并通过“搜索”跳出字符串你的意思是只找到它们吗?你也想修复它们吗?如果你想修复它们,你还可以描述是什么使电话号码有效-例如999-999-9999或其他什么。你能给出一些示例数据和预期的o/pIf I put 111我想返回记录,如0-5555-111以及111 111。如果你在这个查询中输入111,它将只返回精确匹配111,即使它有LIKE.OK,解决了我必须用“%”| | | replace(replace(…| | |“%”并跳出字符串)将函数concate