如何从数据库里字段中获取"BBB/XXXX/"字符串中的"XXXX"字符,我想用SELECT语句将这个"XXXX"内容查询显示输出.

解决方案 »

  1.   

    如果格式是固定的就好办,如果不是,一句搞不定了
    BBB/XXXX/固定时:select right(left(cols,8),4) from tb
    XXXX位数不固定时:select left(right(cols,len(cols)-4),len(cols)-5) from tb
    BBB个数不固定时:select left(right(cols,5),4) from tb
    再复杂的不好办了
      

  2.   

    BBB是目录名,XXXX是文件名.长度都不固定.关键是我在最后加了一个"/"
      

  3.   

    select substring([字段名],4,4) from [表名]
      

  4.   

    再说明一下我前面还有一个目录的AAA/BBBBB/XXXXX
    目录名的长度都不固定
      

  5.   

    读出来后在分割
    dim rdr as new sqldatareader
    dim FileName as string
    dim pathstr=rdr.item("字段名")
    dim sptarray() as string=split(pathstr,"/")
    me.lable1.text=sptarray(1)
      

  6.   

    select substring(cols,charindex('/',cols),charindex('/',charindex('/',cols)+1)) from table如果要每一个'/'之间的string,用存储过程更好
      

  7.   

    我数据库里是"AAA/BBBBB/XXXXX$AAA/BBBBB/YYYYY$"数据字符,我目前是用datagrid显示的,数据源是SRD。
    目前我的水平只能将SRD的数据直接连到DATAGRID的SOURCE上,不会把数据先从SRD拿出来再放回SRD给DATAGRID的SOURCE.$是每段目录的分割符,我希望在表格列中显示的结果为"XXXXX,YYYYY"。如何做呢。非常感谢各位了!
      

  8.   

    Declare @S Varchar(1000)
    Set @S='AAA/BBBBB/ABCDEF$'
    Select REVERSE(Substring(REVERSE(@S),CharIndex('$',REVERSE(@S))+1,CharIndex('/',REVERSE(@S))-CharIndex('$',REVERSE(@S))-1))--Result
    ABCDEF
      

  9.   

    取數據的話。Select REVERSE(Substring(REVERSE(字段),CharIndex('$',REVERSE(字段))+1,CharIndex('/',REVERSE(字段))-CharIndex('$',REVERSE(字段))-1)) From TableName
      

  10.   

    谢谢,但是只能显示字段中最后一个YYYY,却没法实现“XXXXX,YYYYY"的效果
      

  11.   

    實現是可以的,不過要寫一個自定義函數。--建立函數
    Create Function Get_XY(@S Varchar(1000))
    Returns Varchar(1000)
    As
    Begin
    Declare @SplitStr Varchar(1000)
    Declare @ReturnStr Varchar(1000)
    Set @ReturnStr=''
    While CharIndex('$',@S)>0
    Begin
    Set @SplitStr=Left(@S, CharIndex('$',@S))
    Set @ReturnStr=@ReturnStr+','+REVERSE(Substring(REVERSE(@SplitStr),CharIndex('$',REVERSE(@SplitStr))+1,CharIndex('/',REVERSE(@SplitStr))-CharIndex('$',REVERSE(@SplitStr))-1))
    Set @S=Stuff(@S,1, CharIndex('$',@S),'')
    End
    Return Stuff(@ReturnStr,1,1,'')
    End
    GO
    --測試
    Select dbo.Get_XY('AAA/BBBBB/XXXXX$AAA/BBBBB/YYYYY$AAA/BBBBB/DEFRSE$')
    GO
    --刪除測試環境
    Drop Function Get_XY
    --結果
    /*
    XXXXX,YYYYY,DEFRSE
    */