SQL 字段里有逗號隔開的數據的取值


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM