如何用SQL语句提取指定字符,格式为XX-XX-XX,XX之一可能为空格,举例如下
AB-CD-1, 提取出AB, CD, 1
A-CD-1, 提取出A, CD, 1
A-C-1, 提取出A, C, 1
A-C-12, 提取出A, C, 12
AB-CD-12, 提取出AB, CD, 12

解决方案 »

  1.   

    declare @s varchar(50)
    set @s=replace('AB-CD-1','-','.')
    select parsename(@s,3)+','+parsename(@s,2)+','+parsename(@s,1)AB,CD,1
      

  2.   

    declare @s varchar(8000)
    set @s='AB-CD-1'
    set @s='<item>'+replace(@s,'-','</item><item>')+'</item>'
    select cast(@s as xml).query('
    for $xml in //item
    return concat($xml/text()[1],",")
    ')
    AB, CD, 1,
      

  3.   

    谢谢pl_mm,
    parsename果然妙用
    怎么加分给你啊,好像我没分可散=_=