【发布时间】:2010-06-28 13:15:11
【问题描述】:
这是一个使用 SQL Server 2008 的人为示例。
我实际上是在一个表的 xml 列中存储一个 id 列表: temp (bigint id, xml ids)
我想将表本身加入 xml 节点。
到目前为止,我有:
select * from temp x
join (
select x.id
, ids.id.value('@value', 'bigint') zid
from temp t cross apply ids.nodes('/ids/id') as ids(id)
) z on x.id=z.id
我明白了:无法绑定多部分标识符“x.id”。
在我看来,这只是一个正常的相关子查询。我错过了什么?
----- 更新:
对于临时表中的以下示例数据:
id ids
-- ---
1 <ids><id value="11" /><id value="12" /><id value="13" /></ids>
2 <ids><id value="21" /><id value="22" /><id value="23" /></ids>
3 <ids><id value="31" /><id value="32" /><id value="33" /></ids>
我希望看到以下结果集:
id zid
-- ---
1 11
1 12
1 13
2 21
2 22
2 23
3 31
3 32
3 33
【问题讨论】:
-
尚不清楚您要在这里实现什么。您能否发布一些示例数据和所需的输出?
标签: sql tsql sql-server-2008 correlated-subquery