Оптимизированный по производительности способ проверить, имеет ли поле varchar какую-либо цифру (SQL Server 2012) - PullRequest
1 голос
/ 05 апреля 2019

Я проверяю данные тысяч записей.Я ищу способ оптимизировать производительность, чтобы проверить, содержит ли поле varchar 1 или более цифр.Например, «MC KINNEY» в порядке, но «MC KINNEY2» или «2MC KINNEY» или «MC123KINNEY» не в порядке.

Этот тест должен использоваться в предложении WHERE и должен работать в SQLServer 2012. Мне известно, что функция translate () может использоваться в SQL Server 2017: https://stackoverflow.com/a/18424718, но в моем случае это не работает.

1 Ответ

3 голосов
/ 05 апреля 2019

Вы можете запросить, используя ранжированное шаблонное выражение:

Для запроса записей с цифрой:

where fieldName LIKE '%[0-9]%'

Для запроса записей без цифры:

where fieldName NOT LIKE '%[0-9]%'

См. Здесь: https://docs.microsoft.com/en-us/sql/t-sql/language-elements/like-transact-sql?view=sql-server-2017#arguments для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...