Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 检查字符串的起始字符在T-SQL中是否按字母顺序排列_Sql Server_Regex_Tsql - Fatal编程技术网

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

Sql server 检查字符串的起始字符在T-SQL中是否按字母顺序排列,sql-server,regex,tsql,Sql Server,Regex,Tsql,是否可以仅使用TSQL检查varchar字段的前两个字符是否按字母顺序排列 我需要从my_表中选择只有my_字段以两个字母字符开头的行。我怎样才能做到这一点 可以使用正则表达式吗?您不需要使用正则表达式,如就足够了: select * from my_table where my_field Like '[a-z][a-z]%' WHERE my_field LIKE '[a-zA-Z][a-zA-Z]%' 假设“字母顺序”仅指拉丁字符,而不是Unicode中的字母顺序 注意-如果排序规则区

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

我需要从
my_表
中选择只有
my_字段
以两个字母字符开头的行。我怎样才能做到这一点


可以使用正则表达式吗?

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

select * from my_table where my_field Like '[a-z][a-z]%'
WHERE my_field LIKE '[a-zA-Z][a-zA-Z]%'
假设“字母顺序”仅指拉丁字符,而不是Unicode中的字母顺序


注意-如果排序规则区分大小写,请将范围指定为
[a-zA-Z]
<代码>[a-z]可以排除
a
z
<代码>[A-Z]可能排除
A
Z

@Richardakacyberkiwi-不正确。在SQL Server中,对于大多数排序规则,字母表的顺序是
aAbBcCdDeE…zZ
。也许你在想ASCII?你是对的。TBH,我从来没有机会使用区分大小写的排序。这只是第一个和第二个字母,我如何才能对所有字符执行此操作?@MohamedSakherSawan-最好作为单独的问题搜索/询问,但好的,我会回答。如果要确保列只包含字母字符,则双负搜索条件将起作用:
不是像“[^a-Z]%”这样的列
——这表示如果列包含任意数量的字符,则与该列不匹配,即集合
a-Z
之外的字符,和任意数量的字符。我很抱歉@Damien_不信者,我没有读这个问题,thanx很多,我使用了当前的模式:不是像“%$a-zA-Z]”这样的列