一个直观的笨办法.字符串是从数据库表中取出的吧.先把字段值附值给变量,将变量前后各加一个',', 保证是:',a,b,c,d,'这样的形式.replace()方法替换 ','+你要替换的字符串+',' 为','然后除去前后','这样能保证绝对正确,不会造成: 'ab, b, bc, d'删除b时, 误将ab或bc删除一部分.

解决方案 »

  1.   

    declare @str varchar(80)
    set @str = 'a,b,c'
    select case when @str like '%[,]b[,]%' then 'b' else '' end--抛砖引玉 啦 :)
      

  2.   


    看不明白楼住什么意思如果如一楼所说,还不如直接replace两次就可以了啊replace(replace('a,b,c,d,b','b,',''),',b','')
      

  3.   

    create table T(col varchar(20))
    insert T select 'a'
    insert T select 'a,b,c,d'select * from T
    where charindex('b', col)>0--result
    col                  
    -------------------- 
    a,b,c,d(1 row(s) affected)
      

  4.   


    select case when ','+f+',' like '%,b,%' then 'b' else '' end from t
      
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) 最新版本:20070212http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
      

  5.   

    有几个字符串"a"
    "a,b,c,d"我想用Sql函数取出"b"字符,如果没有则不取出.
    --------------
    既然知道要取的是b,那还何必取,直接用b不就得了。
    如果只是要取出包含b的字符串,直接like '%b%'
    select case when @str like '%b%' then @str else '' end
    不就好了,还用的着去拼逗号么?
      

  6.   

    sorry! 可能我的意思表达错误了
    我的意思是有这样一个栏位,里面的字符串是
    "dsa,mw51m234,345sdf"
    "34535,52352,243643,54745"我只想取说 以","逗号分隔开的第二个字符串的字符结果为这样的:
    mw51m234
    52352
      

  7.   

    --參考
    http://blog.csdn.net/zjcxc/archive/2004/07/29/55329.aspx
      

  8.   

    取第二个字符串declare @str1 varchar(100)
    declare @str2 varchar(100)
    declare @len int
    set @str1='dsa,mw51m234,345sdf'
    set @str2=substring(@str1,charindex(',',@str1)+1,len(@str1))
    set @len=charindex(',',@str2)-1
    select substring(@str1,charindex(',',@str1)+1,@len)
    ----------
    mw51m234