Как написать SQL запрос с помощью регулярного выражения для поиска строк содержащих перед символом @ 4 цифры?

я использую MSSQL и пытаюсь найти все строки в которых есть 4 цифры перед символом @ в MSSQl Мой запрос выглядит следующим образом

SELECT * FROM Contact WHERE Email LIKE '%\d{4}@%' ESCAPE '\'

Он отлично отрабатывает в конструкторах regexp и в коде Js, но в SQL он не отдает ничего Вот строка , которую я пытаюсь найти [email protected] Да можно воспользоваться SELECT * FROM Contact WHERE Email LIKE '%[0-9][0-9][0-9][0-9]@%' ESCAPE '\' но это я бы хотел понять, как исправить мое регулярное выражение


Ответы (1 шт):

Автор решения: Andrew Nikolaev

Проверил на MS SQL, так работает

SELECT * FROM 
(   
    SELECT * FROM 
    (
        VALUES
            (1, '[email protected]'),
            (2, '[email protected]'),
            (3, '@ya.ru'),
            (4, 'asdasd'),
            (5, '[email protected]'),
            (6, '[email protected]'),
            (7, '[email protected]'),
            (8, '[email protected]'),
            (9, '[email protected]'),
            (10, 'a.bakerd1234ac.com')
    ) AS emails(id, email)
) SQ
WHERE SQ.email LIKE ('%[0-9][0-9][0-9][0-9]%@%') 
→ Ссылка