表T,中有字段A
字段里面内容比较长,如下表,现知道字母b在每个值中只出现一次,但位置不确定,请问怎么能查询出从b开始后的第N位
       A
0000abfr989800....
000edefefbf00....
00000e45fb00099....

解决方案 »

  1.   

    select charindex('a',A Collate Chinese_PRC_CS_AS_WS)--加上排序,不然大小写字符会当做同一个字符
      

  2.   


    DECLARE @N AS INT
    SELECT @N=3
    SELECT SUBSTRING(A,CHARINDEX('b',A)+@N,1)
    FROM T
      

  3.   

    select substring(A,charindex('a',A Collate Chinese_PRC_CS_AS_WS),N)--A列,N取的位数
      

  4.   

    各位,刚这个问题已经解决,还有个疑问,如果这个唯一出现的b,换成了一窜字符,比如,A字段中,都有唯一的blue,如下所示:
       A
    000fberblue99880...
    0000055bl789blue000.....
    00reeblue000.....
    怎么来查找到blue他后面的(不包括blue)第N位是什么?谢谢
      

  5.   

    select substring(A,charindex('a',A Collate Chinese_PRC_CS_AS_WS)+4,N)--加上4
      

  6.   

    select substring(A,charindex('blue',A Collate Chinese_PRC_CS_AS_WS)+4,N)--用blue加上4