MSSQLÓÐ ÀàËÆÓÚ SPLITµÄº¯ÊýÂð£¿
ÈçÌâ- -¡«
ÎÒÓÐÕâô¸ö¶«Î÷
Ò»¸ö
×Ö·û´®ÈçÏÂËùʾ
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ÓÃÑ»
Ïà¹ØÎÊ´ð£º
ÈçÌ⣬Óû§×¢²áʱ£¬Óû§ÃûÊDz»ÄÜÖØ¸´µÄ£¬ÈçºÎÅжϲåÈëµÄ¼Ç¼²»Öظ´ÄØ£¿
Çë¿´Çå³þÎÒµÄÌâÄ¿£¬²»Òª´ÓÍøÉϳһЩ´ð°¸¹ýÀ´£¬ÍøÉϺܶàÈËдµÄÏÈselectÔÙinsertµÄ¶¼ÊÇϹ³¶£¬Ñ¹¸ù¾Íû¿¼Âǵ½²¢·¢ÐÔÎÊÌ⣬ÎÒÏÖÔÚ²»Ïë¼ÓÉÏÐòÁл¯ ......
ÒѾ¼ÜÉèºÃÁËÓÎÏ·£¬ÄÜÔËÐÐÁË£¡¡¾ÓÎÏ·²»ÊÇÎÒ×öµÄËùÒÔÀïÃæµÄÔ´ÂëʲôµÄ¶¼²»´óÇå³þ¡¿ÓÎϷʹÓõÄÊý¾Ý¿âÊÇMSSQLµÄ¡£
ÏëÓÃÍøÕ¾ÊµÏÖÔÚÍøÒ³ÖÐ×¢²áÕ˺ÅÀ´²åÈëµ½Ö¸¶¨µÄMSsqlÓû§±íÖÐ! ÒÔ±ã´ïµ½ÔÚÍøÕ¾×¢²áÁËÕ˺źóÄÜÔÚÓÎÏ·ÀïÃæ ......
ÎÒÏëÔÚJspÒ³ÃæÀïÃæ»Ö¸´Êý¾Ý¿â£¬²Î¿¼ÁËһЩ×ö·¨£¬Óô洢¹ý³Ì¶Ï¿ªÊý¾Ý¿âµÄÁ´½Ó¡£
/*
¹Ø±ÕÓû§´ò¿ªµÄ½ø³Ì´¦Àí
*/
use master
go
create&nb ......
ÀýÈ磺select a.* from (select id,code from b left join c on b.id=c.id)a where id=1
ÕâÀïµÄwhere ÔÚÖ´ÐеÄʱºò£¬ where »áÓÅ»¯ÊÇ·ñ½øÈ뵽СÀ¨ºÅÀïÃæÖ´ÐÐ?????
SQL code:
select id,code from b left join ......
·´ÕýÎÒÊǾ³£·Ö²»Çå¡¡
¼ÌÐøÉ¢·Ö
µÚÒ»¸ö±ÕÔ´£¬µÚ¶þ¸ö¿ªÔ´£¬µÚÈý¸öûŮÈËÔµ¡¡
LZÄ㻹ÓпÉÓ÷Öô£¿
ÒýÓÃ
LZÄ㻹ÓпÉÓ÷Öô£¿
5·Ö
ÒýÓÃ
µÚÒ»¸ö±ÕÔ´£¬µÚ¶þ¸ö¿ªÔ´£¬µÚÈý¸öûŮÈËÔµ¡¡
ÓÐÒâ˼¡£¿´±êÌ ......