数据库表中有一个字段test test='C:\Program Files\MMSserver\Mms-in\080916441392000601237\s.smil,C:\Program Files\MMSserver\Mms-in\080916441392000601237\33661600.jpg'
怎么样截取 只要.jpg的路径部分,不是jpg的不要

解决方案 »

  1.   

    就是取最后一个\前面的内容吧  用reverse
      

  2.   

    路过 学习 友情up 
    http://topic.csdn.net/u/20101019/11/38c453d7-7d60-41a1-ac92-b72a18942d89.html
      

  3.   

    最后需要的结果就是 test=‘C:\Program Files\MMSserver\Mms-in\080916441392000601237\33661600.jpg’
      

  4.   

    这个字段的内容无论什么时候至少都会有三个路径,而且后缀名都是不一样,但都会有jpg的路径存在
    test='C:\Program Files\MMSserver\Mms-in\080916441392000601237\s.smil,C:\Program Files\MMSserver\Mms-in\080916441392000601237\33661600.jpg'
    这个是最少路径的时候  
      

  5.   

    --> 测试数据:#
    if object_id('tempdb.dbo.#') is not null drop table #
    create table #(test varchar(46))
    insert into #
    select 'C:\abc\s.smil,C:\def\33661600.jpg,X:\xx\xx.bmp'select jpg = reverse(substring(reverse(test), charindex('\', reverse(test), charindex('gpj.',reverse(test))+3), charindex(':', reverse(test), charindex('gpj.',reverse(test))+3)-charindex('\', reverse(test), charindex('gpj.',reverse(test))+3)+2)) from # where test like '%.jpg%'/*
    jpg
    ----------------------------------------------
    C:\def\
    */
      

  6.   

    DECLARE @var VARCHAR(4000)SET @Var = 'C:\Program Files\MMSserver\Mms-in\080916441392000601237\s.smil,C:\Program Files\MMSserver\Mms-in\080916441392000601237\33661600.jpg'
    SELECT  REVERSE(SUBSTRING(REVERSE(@Var), CHARINDEX('gpj.', REVERSE(@Var)),
                              CHARINDEX(':C',
                                        SUBSTRING(REVERSE(@Var),
                                                  CHARINDEX('gpj.', REVERSE(@Var)),
                                                  LEN(REVERSE(@Var)))) + 1))--C:\Program Files\MMSserver\Mms-in\080916441392000601237\33661600.jpg
      

  7.   

    要不要文件名随你:--> 测试数据:#
    if object_id('tempdb.dbo.#') is not null drop table #
    create table #(test varchar(46))
    insert into #
    select 'C:\abc\s.smil,C:\def\33661600.jpg,X:\xx\xx.bmp'select jpg = reverse(substring(reverse(test), charindex('\', reverse(test), charindex('gpj.',reverse(test))+3), charindex(':', reverse(test), charindex('gpj.',reverse(test))+3)-charindex('\', reverse(test), charindex('gpj.',reverse(test))+3)+2)) from # where test like '%.jpg%'
    /*
    jpg
    ----------------------------------------------
    C:\def\
    */select jpg = reverse(substring(reverse(test), charindex('gpj.',reverse(test)), charindex(':', reverse(test), charindex('gpj.',reverse(test))+3)-charindex('gpj.',reverse(test))+2)) from # where test like '%.jpg%'
    /*
    jpg
    ----------------------------------------------
    C:\def\33661600.jpg
    */