【发布时间】:2016-04-30 20:05:58
【问题描述】:
我有一个“主”表,其中包含一个 id(加上一些其他列)和一个通过 [main id] 列连接到 main.id 的 aka 表。以下查询从 main 中返回一些列以及来自 aka 的连接逗号分隔的“lastName”列:
SELECT m.id, m.name,
(SELECT a.[lastname] + ',' AS [text()]
FROM aka a
WHERE a.[main id] = m.[id]
FOR xml path ('')) [akas]
FROM main m
这很好用,但我想知道是否有办法避免在子查询中这样做?
【问题讨论】:
-
不使用子查询,在最终选择结果之前,您可能仍然需要加入 2 个表。
-
你有什么理由不能用 aka 加入 main 吗?有什么特别的,所以你用于 xml 路径?
-
您可以创建自己的 CLR 聚合,然后它将是一个没有子查询的普通
group by。
标签: sql-server subquery