Фильтр SQL-запросов на основе не альфа-первого символа - PullRequest
2 голосов
/ 14 марта 2011

Я пытаюсь отфильтровать столбец VARCHAR, где первая буква НЕ является альфа.

Пример.
values ​​= ['.net', '30 days ',' apple ','бета ']

возвращает [' .net ', '30 дней']

Примечание: для справки это сгруппировать имена в группы фильтров по первой букве, где все, что не является буквенным символомсгруппирован в '#' (представьте, что контакты iPhone просматривают группировку).

Фильтрация по одной альфе легко с LIKE или подстрокой, но я не могу найти простой способ фильтрации по ВСЕМ не альфа-символам.

РЕДАКТИРОВАТЬ: Он чувствителен к регистру, но я ожидаю все строчные, все время.

Ответы [ 2 ]

8 голосов
/ 14 марта 2011

Это решение так же просто, как:

SELECT * 
FROM SomeTable 
WHERE SomeColumn NOT LIKE '[A-z]%'

РЕДАКТИРОВАТЬ: Изменено [A-Z] на [A-z] на случай, если вы используете сортировку с учетом регистра.

2 голосов
/ 14 марта 2011
select * from table
where ASCII(Name) NOT BETWEEN 65/* A */ and 90/* Z */
 AND ASCII(Name) NOT BETWEEN 97 /* a */ AND 122 /* z */

Вы не указали аромат, так что это TSQL, хотя я считаю, что ASCII поддерживается в большинстве реализаций SQL. Встроенные символы комментария (/ * * /) могут отличаться.

...