@str = |108||203|查找返回结果str = 108 只返回第一个 其它的都干掉

解决方案 »

  1.   

    declare @str varchar(100)
    set @str = '|108||203|'
    select substring(@str,2,charindex('|',stuff(@str,1,1,''))-1)
      

  2.   


    declare @str varchar(20)
    set @str ='|108||203|'
    select substring(@str,charindex('|',@str)+1,charindex('||',@str)-charindex('|',@str)-1)/*
                         
    -------------------- 
    108(所影响的行数为 1 行)*/
      

  3.   

    declare @str varchar(20)
    set @str ='|108||203|'
    select substring(@str,2,charindex('||',@str)-2)/*
                         
    -------------------- 
    108(所影响的行数为 1 行)*/
      

  4.   

    declare @ varchar(10)
    set @ ='|108||203|' 
    select substring(@,2,charindex('|',@,2)-2)
    /*----------
    108(1 行受影响)*/
      

  5.   


    declare @str varchar(20)
    set @str ='|108||203|'
    select substring(@str,2,charindex('||',@str)-2)/*
                         
    -------------------- 
    108(所影响的行数为 1 行)*/
      

  6.   

    declare @str varchar(20)
    set @str= '|108||203| '
    select substring(@str,2,3)