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
有几个字符串"a" "a,b,c,d"我想用Sql函数取出"b"字符,如果没有则不取出. -------------- 既然知道要取的是b,那还何必取,直接用b不就得了。 如果只是要取出包含b的字符串,直接like '%b%' select case when @str like '%b%' then @str else '' end 不就好了,还用的着去拼逗号么?
取第二个字符串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
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','')
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(附全部源代码) 最新版本:20070212http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
"a,b,c,d"我想用Sql函数取出"b"字符,如果没有则不取出.
--------------
既然知道要取的是b,那还何必取,直接用b不就得了。
如果只是要取出包含b的字符串,直接like '%b%'
select case when @str like '%b%' then @str else '' end
不就好了,还用的着去拼逗号么?
我的意思是有这样一个栏位,里面的字符串是
"dsa,mw51m234,345sdf"
"34535,52352,243643,54745"我只想取说 以","逗号分隔开的第二个字符串的字符结果为这样的:
mw51m234
52352
http://blog.csdn.net/zjcxc/archive/2004/07/29/55329.aspx
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