Oracle:
SELECT *
FROM mytable
WHERE REGEXP_REPLACE(Phonenumber, '[^0-9]', '') = '5551234567'
SQL Server 2005+:
WITH digits AS
(
SELECT 1 AS digit
UNION ALL
SELECT digit + 1
FROM digits
WHERE digit <= 100
)
SELECT *
FROM mytable
WHERE (
SELECT SUBSTRING(number, digit, 1) AS [text()]
FROM digits
WHERE SUBSTRING(number, digit, 1) BETWEEN '0' AND '9'
FOR XML PATH('')
) = '5551234567'
, ,
WITH digits AS
(
SELECT 1 AS digit
UNION ALL
SELECT digit + 1
FROM digits
WHERE digit <= 100
),
phones AS
(
SELECT m.*,
(
SELECT SUBSTRING(number, digit, 1) AS [text()]
FROM digits
WHERE SUBSTRING(number, digit, 1) BETWEEN '0' AND '9'
FOR XML PATH('')
) AS nphone
FROM mytable m
)
SELECT *
FROM phones
WHERE nphone = '5551234567'
, , .