开始位置是不定的,因为字段里面可能是(aaa,wwwww,tt)或者(qqqqqqqqq,u,iiiii)等等

解决方案 »

  1.   

    这个只能多次使用charindex函数和stuff函数循环判断了。
      

  2.   

    ---测试数据---
    if object_id('[tb]') is not null drop table [tb]
    go
    create table [tb]([col] varchar(17))
    insert [tb]
    select 'aaa,wwwww,tt' union all
    select 'qqqqqqqqq,u,iiiii'
     
    ---查询---
    select 
      substring(col,charindex(',',col)+1,len(col)-charindex(',',reverse(col))-charindex(',',col)) as col
    from [tb]---结果---
    col               
    ----------------- 
    wwwww
    u(所影响的行数为 2 行)
      

  3.   

    Select  substring('AAAA-BBBBBB-C', CHARINDEX('-','AAAA-BBBBBB-C')+1,CHARINDEX('-', substring('AAAA-BBBBBB-C', CHARINDEX('-','AAAA-BBBBBB-C')+1,len('AAAA-BBBBBB-C')- CHARINDEX('-','AAAA-BBBBBB-C')))-1)
    ------------------------------------
    BBBBBB
      

  4.   

    declare @len int
    set @len = charindex(',','AAA,BBBBBBBB,C')
    select substring('AAA,BBBBBBBB,C',@len + 1,charindex(',',stuff('AAA,BBBBBBBB,C',1,@len,'')) -1)