检查字符串的起始字符是否在 T-SQL 中按字母顺序排列

2021-09-10 00:00:00 regex tsql sql-server

是否可以仅使用 TSQL 来检查 varchar 字段的前两个字符是否按字母顺序排列?

Is it possible, just using TSQL, to check if the first two characters of a varchar field are alphabetical?

我需要从 my_table 中只选择 my_field 以两个字母字符开头的行.我怎样才能做到这一点?

I need to select from my_table only the rows having my_field beginning with two alphabetical chars. How can I achieve this?

是否可以使用正则表达式?

Is it possible to use a regex?

推荐答案

你不需要使用正则表达式,LIKE 就足够了:

You don't need to use regex, LIKE is sufficient:

WHERE my_field LIKE '[a-zA-Z][a-zA-Z]%'

假设字母顺序"仅指拉丁字符,而不是 Unicode 中按字母顺序分类的任何字符.

Assuming that by "alphabetical" you mean only latin characters, not anything classified as alphabetical in Unicode.

注意 - 如果您的排序规则区分大小写,则将范围指定为 [a-zA-Z] 很重要.[a-z] 可以排除 AZ.[A-Z] 可以排除 az.

Note - if your collation is case sensitive, it's important to specify the range as [a-zA-Z]. [a-z] may exclude A or Z. [A-Z] may exclude a or z.

相关文章