SQL Server 連接表內部查詢中的逗號分隔字符串


--創建測試數據庫
create database testDb
go

use testDb
go

--新聞表
create table News
(
NeID int not null primary key identity(1,1),--新聞ID自增
NeTitle nvarchar(100) null,--標題
NeContent ntext null,--內容
NeCreateTime datetime null,--時間
NeTabIdStr nvarchar(200) null--標簽ID字符串(,)隔開
)
go

--新聞標簽表
create table NewsTab
(
NeTbId int not null primary key identity(1,1),--新聞標簽ID自增
NeTbName nvarchar(20) null,--標簽名稱
)
go

--插入新聞標簽測試數據
insert into NewsTab values ('行業新聞')
insert into NewsTab values ('媒體報道')
insert into NewsTab values ('今日頭條')

 


--插入新聞測試數據
insert into News values('測試數據1','測試數據內容1',GETDATE(),'1,3')
insert into News values('測試數據2','測試數據內容2',GETDATE(),'1,2,3')
insert into News values('測試數據3','測試數據內容3',GETDATE(),'3,2,1')
insert into News values('測試數據4','測試數據內容4',GETDATE(),'3')
go

--查詢逗號分隔的列表
select *,TabNameStr = STUFF(( SELECT ',' + NeTbName
FROM NewsTab
where PATINDEX('%,' + RTRIM(NewsTab.NeTbId) + ',%',',' + News.NeTabIdStr + ',')>0
ORDER BY PATINDEX('%,' + RTRIM(NewsTab.NeTbId) + ',%',',' + News.NeTabIdStr + ',')
FOR XML PATH('')), 1, 1,'') from News

 

 

 

 

 


免責聲明!

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



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