基于非Alpha第一个字符过滤SQL查询

时间:2011-03-14 18:24:38

标签: sql filter filtering

我正在尝试过滤VARCHAR列,其中第一个字母不是alpha。

实施例
values = ['.net','30天','apple','beta']

返回['.net','30天']

注意:作为参考,这是通过首字母将名称分组到过滤器桶中,其中任何不是字母字符的内容都被分组为“#”(想想iPhone联系人浏览分组)。

使用LIKE或子字符串轻松过滤单个alpha,但我找不到一种简单的方法来过滤所有非字母字符。

编辑:它区分大小写,但我一直期待所有小写。

2 个答案:

答案 0 :(得分:8)

解决方案是否如此简单:

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

编辑:如果您使用区分大小写的排序规则,请将[A-Z]更改为[A-z]。

答案 1 :(得分:2)

select * from table
where ASCII(Name) NOT BETWEEN 65/* A */ and 90/* Z */
 AND ASCII(Name) NOT BETWEEN 97 /* a */ AND 122 /* z */

你没有指定flavor,所以这是TSQL虽然我相信大多数SQL实现都支持ASCII。内联注释字符(/ * * /)可能不同。