如何在一个Sql函数里取出"a,b,c,d"中的"b"字符呢?
有几个字符串   
  "a " 
  "a,b,c,d "   
 我想用Sql函数取出 "b "字符,如果没有则不取出.   
 思路有了,怎么做呢?   Sql好像没有split函数呀 
------解决方案--------------------declare @str varchar(80) 
 set @str =  'a,b,c ' 
 select case when @str like  '%[,]b[,]% ' then  'b ' else  ' ' end   
 --抛砖引玉 啦 :)
------解决方案--------------------  看不明白楼住什么意思   
 如果如一楼所说,还不如直接replace两次就可以了啊   
 replace(replace( 'a,b,c,d,b ', 'b, ', ' '), ',b ', ' ')
------解决方案--------------------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) 
------解决方案--------------------  select case when  ', '+f+ ', ' like  '%,b,% ' then  'b ' else  ' ' end from t     
 ***************************************************************************** 
 欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)    
 最新版本:20070212   
 http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
------解决方案--------------------有几个字符串   
  "a " 
  "a,b,c,d "   
 我想用Sql函数取出 "b "字符,如果没有则不取出. 
 -------------- 
 既然知道要取的是b,那还何必取,直接用b不就得了。 
 如果只是要取出包含b的字符串,直接like  '%b% ' 
 select case when @str like  '%b% ' then @str else  ' ' end 
 不就好了,还用的着去拼逗号么? 
------解决方案----------------------參考 
 http://blog.csdn.net/zjcxc/archive/2004/07/29/55329.aspx
------解决方案--------------------取第二个字符串   
 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