我在ID (Primary key)
中有XML data type
和SQL Server 2008
的表格。
我需要帮助才能找到其关联的XML有超过500个元素的ID(父母和孩子将被视为2个独立的元素)
我在该表中有大约15,000条记录。
答案 0 :(得分:1)
这是一个非常有趣的问题。我建议你创建一个函数,它返回当前节点的子计数,然后将每个子节点重新分配为root(@ x1),并在它变为0(不再是子节点)时调用自身,如下例所示,但是并发。 找到这篇文章,它展示了如何遍历XML http://blog.bodurov.com/How-to-Traverse-Hierarchical-XML/
DECLARE @x1 XML
SELECT @x1 = '
<Employees>
<Employee>
<Name>Jacob</Name>
<Number>1001</Number>
</Employee>
<Employee>
<Name>Bob</Name>
<Number>1002</Number>
</Employee>
<Employee>
<Name>Steve</Name>
<Number>1003</Number>
</Employee>
</Employees>'
SELECT
@x1.value('count(/*/*)','INT') AS ChildrenOfRootElement
抱歉,我没有SQL Management studio atm,因此无法测试或生成功能。
答案 1 :(得分:0)
select ID
from YourTable
where XMLCol.value('count(//*)', 'int') > 500