Подтвердить что ты не робот

Возвращать sql-строки, в которых поле содержит ТОЛЬКО не буквенно-цифровые символы

Мне нужно выяснить, сколько строк в определенном поле в моей таблице sql-сервера содержат ТОЛЬКО не буквенно-цифровые символы.

Я думаю, что это регулярное выражение, которое мне нужно по строкам [^ a-zA-Z0-9], но я не уверен в точном синтаксисе, который мне нужен, чтобы возвращать строки, если нет действительных буквенно-цифровых символов в есть.

4b9b3361

Ответ 1

SQL Server не имеет регулярных выражений. Он использует синтаксис соответствия шаблону LIKE, который не совпадает.

Как это происходит, вы близки. Просто нужно использовать + обратные подстановочные знаки и перемещать NOT

 WHERE whatever NOT LIKE '%[a-z0-9]%'

Ответ 2

Если у вас короткие строки, вы должны создать несколько шаблонов LIKE ('[^a-zA-Z0-9]', '[^a-zA-Z0-9][^a-zA-Z0-9]',...) для соответствия строк разной длины. В противном случае вы должны использовать функцию CLR, определенную пользователем, и правильное регулярное выражение - Регулярные выражения упрощают сопоставление образцов и удаление данных.