SQL搜索名称以a到z开头,区分大小写

时间:2019-03-04 19:11:26

标签: sql sql-server

如何编写一个SQL以区分大小写的方式以a到z开头搜索名称?

我当前的解决方案:

select *
from HR.Employees
where name collate sql_latin1_general_cp1_cs_as like '[abcdefghijklmnopqrstuvwxyz]%';

有更好的解决方案吗?

2 个答案:

答案 0 :(得分:2)

您可以检查第一个字符的ASCII码:

select *
from HR.Employees
where ascii(substring(name, 1, 1)) between ascii('a') and ascii('z')

您也可以使用left(name, 1)函数代替substring(name, 1, 1)

答案 1 :(得分:1)

我不认为您需要第一个COLLATE,但这是一个可以满足您需求的选项。 重要的部分是使比较字符串区分大小写。

SELECT *
FROM HR.Employees
WHERE name LIKE '[a-z]%' COLLATE Latin1_General_BIN;