我想将多个表中的数据存储到一个表中
table A (
p, q,
PRIMARY KEY (p,q)
)
table B (
p, m, n,
PRIMARY KEY (p,m,n)
)
table output(
p,
xml
)
输出应该像
对于表 A
-------------------------------
| p | xml |
---------------------------------
|value of p | <q>some value</q> |
-------------------------------
对于表 B
-----------------------------------------------
| p | xml |
------------------------------------------------
|value of p | <m>some value</m><n>some data</n> |
-----------------------------------------------
这可以通过这个查询来实现
SELECT *
FROM Students s
CROSS APPLY
(
SELECT
(
SELECT *
FROM Students t
WHERE t.DisplayName = s.DisplayName
FOR XML RAW
) x1
)x
但我想让 SQL 足够通用,以便给定任何表名,我们可以获得上述输出。
内部连接的问题是查询不会是通用的