我正在尝试编写一个查询,以确定字符串(varchar)中是否存在3个或更多数字的序列。这是针对SQL Server的。
例如字符串:“521324567”,这一行数据将被返回,因为它有一个序列“4567”。
例如字符串:“410747823”,这一行数据将不会被返回,因为没有3个或更多数字的序列。
例如字符串:“1274563619”,这一行数据将被返回,因为它有序列“456”。
如果是固定长度的字符串,我认为我可以想出类似下面的SQL查询语句。
例如字符串:“521324567”,这一行数据将被返回,因为它有一个序列“4567”。
例如字符串:“410747823”,这一行数据将不会被返回,因为没有3个或更多数字的序列。
例如字符串:“1274563619”,这一行数据将被返回,因为它有序列“456”。
如果是固定长度的字符串,我认为我可以想出类似下面的SQL查询语句。
Select num from numbers where substring(num,2,1)=
(select substring(num,1,1)) + 1
charindex
是否会比like
执行更少的机器指令。一些人(例如https://dev59.com/7n3aa4cB1Zd3GeqPitYQ#22543831)似乎是这样认为的。 - Jeff Holtcharindex
代替可能不会有明显的差异。 - Bohemian