我正在尝试过滤VARCHAR列,其中第一个字母不是alpha。
实施例
values = ['.net','30天','apple','beta']
返回['.net','30天']
注意:作为参考,这是通过首字母将名称分组到过滤器桶中,其中任何不是字母字符的内容都被分组为“#”(想想iPhone联系人浏览分组)。
使用LIKE或子字符串轻松过滤单个alpha,但我找不到一种简单的方法来过滤所有非字母字符。
编辑:它区分大小写,但我一直期待所有小写。
答案 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。内联注释字符(/ * * /)可能不同。