欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

sql联合查询,如若将a表中的信息,合并到b表中一个字段显示

更新时间: 2014-01-05 02:18:16 责任编辑: Author_N1

 

sql联合查询,如果将A表中的信息,合并到B表中一个字段显示
A表(dj_table1)

B表(dj_table2)  


我通过语句查询
select *,
(stuff((SELECT ','+b.[typename] from dj_table2 b 
where b.supportingTypeID=a.supportingTypeID and a.typeID LIKE '%'+cast(b.typeID AS nvarchar(10))+'%' FOR xml path('')), 1, 1, '')
)
 from dj_table1 a

得到的结果是


其中红色的部分输出就出现错误了,麻烦大神们帮忙看看

其中生成表的语句:
CREATE TABLE [dbo].[dj_table1](
[ID] [int] IDENTITY(1,1) NOT NULL,
[typeID] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[supportingtypeID] [int] NULL,
 CONSTRAINT [PK_dj_table1] PRIMARY KEY CLUSTERED 
(
[ID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
go
CREATE TABLE [dbo].[dj_table2](
[typeID] [int] IDENTITY(1,1) NOT NULL,
[typeName] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[supportingtypeId] [int] NULL,
 CONSTRAINT [PK_dj_table2] PRIMARY KEY CLUSTERED 
(
[typeID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]


--参考方法--
改成这样试试:
select *,
(stuff((SELECT ','+b.[typename] from dj_table2 b 
where b.supportingTypeID=a.supportingTypeID and 
charindex(','+cast(b.typeID AS nvarchar(10))+',',','+a.typeID+',')>0 
FOR xml path('')), 1, 1, '')
)
 from dj_table1 a

--参考方法--

select *,
(stuff((SELECT ','+b.[typename] from dj_table2 b 
where b.supportingTypeID=a.supportingTypeID and ','+a.typeID+',' LIKE '%,'+cast(b.typeID AS nvarchar(10))+',%' FOR xml path('')), 1, 1, '')
)
 from dj_table1 a

逗号的地方注意
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:18:16
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/8267/
本文WWW.DOC100.NET DOC100.NET版权所有。