table 1 :
id code
1 001
2 001,002
3 001,002,003
table 2:
code name
001 數學
002 體育
003 美術
要求結果
id name
1 數學
2 數學,體育
3 數學,體育,美術
--測試數據
with table1(id,code) as (
select 1,'001' union all
select 2,'001,002' union all
select 3,'001,002,003'),
table2(code,name) as(
select '001','數學' union all
select '002','體育' union all
select '003','美術')
--用charindex和for xml path實現批量替換的功能,適用於sql server 2005及以上版本
select table1.id,stuff((
select ','+table2.name from table2
where charindex(','+table2.code+',',','+table1.code+',')>0
order by table2.code
for xml path('')
),1,1,'') as name
from table1