如何在一个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