--·Ö½â×Ö·û´®°üº¬µÄÐÅÏ¢ÖµºóÈ»ºóºÏ²¢µ½ÁíÍâÒ»±íµÄÐÅÏ¢
--(°®Ð¾õÂÞ.ع»ª(Ê®°ËÄê·çÓê,ÊØµÃ±ùɽѩÁ«»¨¿ª) 2007-12-23 ¹ã¶«ÉîÛÚ)
/*ÎÊÌâÃèÊö
tba
ID classid name
1 1,2,3 Î÷·þ
2 2,3 ÖÐɽװ
3 1,3 Ãû¿ã
tbb
id classname
1 Ò·þ
2 ÉÏÒÂ
3 ¿ã×Ó
ÎҵõĽá¹ûÊÇ
id classname name
1 Ò·þ,ÉÏÒÂ,¿ã×Ó Î÷·þ
2 ÉÏÒ£¬¿ã×Ó ÖÐɽװ
3 Ò·þ£¬¿ã×Ó Ãû¿ã
*/
-----------------------------------------------------
--sql server 2000ÖеÄд·¨
create table tba(ID int,classid varchar(20),name varchar(10))
insert into tba values(1,'1,2,3','Î÷·þ')
insert into tba values(2,'2,3' ,'ÖÐɽװ')
insert into tba values(3,'1,3' ,'Ãû¿ã')
create table tbb(ID varchar(10), classname varchar(10))
insert into tbb values('1','Ò·þ')
insert into tbb values('2','ÉÏÒÂ')
insert into tbb values('3','¿ã×Ó')
go
--µÚ1ÖÖ·½·¨£¬´´½¨º¯ÊýÀ´ÏÔʾ
create function f_hb(@id varchar(10))
returns varchar(1000)
as
begin
declare @str varchar(1000)
set @str=''
select @str=@str+','+[classname] from tbb where charindex(','+cast(id as varchar)+',',','+@id+',')>0
return stuff(@str,1,1,'')
end
go
select id,classid=dbo.f_hb(classid),name from tba
drop function f_hb
/*
id classid name
----------- ------------- ----------
1 Ò·þ,ÉÏÒÂ,¿ã×Ó Î÷·þ
2 &
Èç¹ûÔÚSQL Server ÀïÐèÒª¶¨Ê±»òÕßÿ¸ôÒ»¶Îʱ¼äÖ´ÐÐij¸ö´æ´¢¹ý³Ì»ò3200×Ö·ûÒÔÄÚµÄSQLÓï¾äʱ, ¿ÉÒÔÓùÜÀí->SQL Server´úÀí->×÷ÒµÀ´ÊµÏÖ¡£
¡¡¡¡1¡¢¹ÜÀí->SQL Server´úÀí->×÷Òµ(°´Êó±êÓÒ¼ü)->н¨×÷Òµ
¡¡¡¡2¡¢Ð½¨×÷ÒµÊôÐÔ(³£¹æ)->Ãû³Æ[×Ô¶¨Òå±¾´Î×÷ÒµµÄÃû³Æ]->ÆôÓõķ½¿òÄÚÊǹ´ºÅ->
·ÖÀà´¦¿ ......