SQL Server 2000 Как использование оператора - PullRequest
0 голосов
/ 19 сентября 2008

У меня есть оператор SQL, который выглядит следующим образом:

SELECT [Phone]
FROM [Table]
WHERE
(
    [Phone] LIKE '[A-Z][a-z]'
    OR [Phone] = 'N/A'
    OR [Phone] LIKE '[0]'
)

Часть, с которой у меня возникают проблемы, - это оператор where с "LIKEs". Я видел операторы SQL, где авторы использовали операторы like так, как я их использую выше. Сначала я думал, что это может быть версия регулярных выражений, но с тех пор я узнал.

Кто-нибудь знает, как использовать подобные выражения таким образом. Примечание: «N / A» работает нормально.

То, что мне нужно, - это номера телефонов с символами. Или номера телефонов, которые содержат только ноль.

Ответы [ 2 ]

4 голосов
/ 19 сентября 2008

Отметьте здесь .

[] соответствует диапазону символов.

Я думаю, вы хотите что-то вроде этого:

SELECT [Phone]
FROM [Table]
WHERE
(
    [Phone] LIKE '%[A-Z]%'
    OR [Phone] LIKE '%[a-z]%'
    OR [Phone] = 'N/A'
    OR [Phone] LIKE '0'
)
2 голосов
/ 19 сентября 2008

Попробуйте использовать функцию t-sql ISNUMERIC. Это покажет вам, какие из них / не числовые.

Вам также может понадобиться TRIM или REPLACE пробелов, чтобы получить то, что вы хотите.

Например, чтобы найти действительные номера телефонов, замените пробелы на '', проверьте на ISNUMERIC и проверьте на LEN.

Хотя я и предупрежу вас, это будет утомительно, если вам придется иметь дело с международными телефонными номерами.

Что следует отметить с вашим SQL выше, так это то, что SQL Server не понимает Regex.

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