ÈçÌâ- -¡«
ÎÒÓÐÕâô¸ö¶«Î÷
Ò»¸ö
×Ö·û´®ÈçÏÂËùʾ
1,2,3,4,5
È»ºóÎÒ
ÐèҪѻ·µÄ°Ñ ÕâЩÊý¾Ý²åÈëµ½Êý¾Ý¿âÖÐ
ÎÒ¸ÃÔõô×ö£¿
http://blog.csdn.net/htl258/archive/2009/09/09/4533846.aspx
SQL code:
ÎÒÏÖÔÚÓÐÒ»×Ö¶ÎֵΪ:a,b,c
·Ö¸ô·ûΪ¶ººÅ.
ÎÒÏÖÔÚÏëʵÏÖÄ¿µØÖµÎª:
×Ö¶Î:
id name
1 a
2 b
3 c
ÔÚSQLÖÐզʵÏÖÄØ?
declare @str varchar(8000)
set @str = 'a1,b1,c2,d1,e3,f5'
set @str = 'select name='''+replace(@str,',',''''+' union all select ''')+''''
exec(@str)
¿ÉÒÔ×Ô¼º´´½¨Ò»¸öº¯Êý
SQL code:
create function f_split(@str varchar(8000),@StrSeprate varchar(10))
returns @temp table(a varchar(100))
as
begin
declare @i int
set @str=rtrim(ltrim(@str))
set @i=charindex(@StrSeprate,@str)
while @i>=1
begin
insert @temp values(left(@str,@i-1))
set @str=substring(@str,@i+1,len(@str)-@i) --µ±È»,ÕâÀïÄúÒ²¿ÉÒÔ¸ÄдΪSTUFF,¿ÉÒÔ×Ô¼ºÊÔןÄдһÏÂ
set @i=charindex(@StrSeprate,@str)
end
if @str<>'\'
insert @temp values(@str)
return
end
--Ó÷¨£ºselect * from dbo.f_split('A:B:C:D:E',':')
ÇëÎÊÒ»ÏÂ
Èç¹ûÏë²åÈëÖ¸¶¨ÁÐ
¸ÃÈçºÎ×ö£¿
--ÕâÖÖ·½Ê½2000ÓÃÑ»