–创建测试数据库
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
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/database/244776.html