【发布时间】:2014-03-25 18:21:03
【问题描述】:
我有一些 xml 存储在 varchar 列中,其中一些节点的属性中的 id 是另一个表中的键。如何对多个属性进行连接?我知道下面的 value 方法只返回一个 id (以及第一个)。
create table #table1 (id1 int, col1 varchar(50));
create table #table2 (id2 varchar(1), col2 varchar(4));
insert into #table1 (id1, col1) values
('1', '<a><b id="1"></b><b id="2"></b></a>');
insert into #table2 (id2, col2) values
('1', 'val1'),
('2', 'val2');
select * from #table1 t1
left join #table2 t2 on t2.id2 = cast(t1.col1 as xml).value('(/a/b/@id)[1]', 'varchar(1)')
返回
id1 col1 id2 col2
1 <a><b id="1"></b><b id="2"></b></a> 1 val1
如何获取 table2 的 ID 2 返回的另一行?
1 <a><b id="1"></b><b id="2"></b></a> 2 val2
【问题讨论】:
标签: sql tsql xquery xquery-sql