展平 SQL 服务器 INNER JOIN 结果 [重复]
Posted
技术标签:
【中文标题】展平 SQL 服务器 INNER JOIN 结果 [重复]【英文标题】:Flattening SQL server INNER JOIN result [duplicate] 【发布时间】:2011-02-12 20:31:56 【问题描述】:可能的重复:How to return multiple values in one column (T-SQL)?Simulating group_concat mysql function in MS SQL Server 2005?
嗨,
假设我有 2 个要加入的表,我在其中使用关键字段进行 INNER JOIN。
架构:
表#a kf int
TABLE #b kf int, data varchar(5)
现在如果#a 有一个值为 1 的单行,而 #b 有多个具有相同键 1 的行
-
1 DBD
1 个 DBE
1 块硬盘
现在,当我进行联接而不是获取 3 行时,是否可以像
那样以逗号分隔的方式获取数据值的一行1 个 DBD、DBE、HDG
【问题讨论】:
【参考方案1】:这是一个使用CTE
和XML PATH('')
的版本
;with cte as
(
select
kf,
(select data+','
from #b as b2
where b1.kf = b2.kf
for xml path('')) as data
from #b b1
group by kf
)
select
a.kf,
left(b.data, len(b.data)-1) as data
from #a as a
inner join cte as b
on a.kf = b.kf
【讨论】:
以上是关于展平 SQL 服务器 INNER JOIN 结果 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
SQL中inner join,outer join和cross join的区别
SQL中inner join,outer join和cross join的区别
mysql的unionleft join right join inner join和视图学习