在TSQL中,如何检查字符串包括“a”后跟“b”,“b”后面跟不是“c”?

时间:2012-05-24 11:32:40

标签: sql sql-server string tsql

在TSQL中,如何检查字符串包括“a”后跟“b”,“b”后面跟不是“c”?例如,这些字符串就是我想要的:

ab
cab
acb

这不是我想要的:     ABC

请注意,您可以在示例中的字符之间插入任意数量的字符(但不要违反上述规则)。

5 个答案:

答案 0 :(得分:6)

使用SQL通配符%定义字符串中的任何字符(一个或多个),然后将其与LIKE运算符组合:

WHERE txtcol LIKE '%a%b%' AND txtcol NOT LIKE '%b%c%'

答案 1 :(得分:0)

如果没有这样的话,我会这样做:

where charindex('a', string) < charindex('b', string) and
      charindex('c', string) < charindex('b', string)

如果您需要角色,请包括:

where charindex('a', string) < charindex('b', string) and
      charindex('c', string) < charindex('b', string) and
      charindex('a', string) > 0

答案 2 :(得分:-1)

col1 like '%ab%' and col1 not like '%abc%'

答案 3 :(得分:-2)

试试这个:

WHERE string LIKE '%ab%' AND string NOT Like '%bc%'

答案 4 :(得分:-3)

试试这个:

  

char letter ='c';

     

if(letter =='z')       nextChar ='a';否则如果(字母=='Z')       nextChar ='A';

     

否则       nextChar =(char)(((整数)字母)+ 1);