sql - 如何使用 SQL Server 计算 XML 列的元素
问题描述
我对 SQL Server 真的很陌生,
我想计算 XML 列中的元素。
这里简要解释一下我的问题。我第一次创建临时表是因为我需要使用另一个表中的另一个列来过滤 XLM 列中的元素。到这里我没有问题。为此,我编写了以下查询:
SELECT a.columnINT AS AC, b.columnXML AS BC
INTO #table1
FROM dbo.a left join dbo.b
ON dbo.b.id = dbo.a.id
在此之后,我创建了一个包含两列的临时表。一个是整数列,第二个是每行都有一个 XML 代码的列。
这里是 XML 代码的一部分
<x>
<x1>
<x2>1.10.100.1000</x2>
</x1>
</x>
我尝试编写此查询以计算x2
2000 万行,但不起作用。
SELECT COUNT(BC.query('/x1/x2').value('.', 'varchar(20)')) AS XML
FROM #table1
where AC = 10
是否可以在 XML 元素中进行计数,还是在概念上是错误的?
有人,拜托,能告诉我我哪里错了吗?
先感谢您。
弗朗切斯科
解决方案
如果我正确地阅读了这些线路,你在这之后吗?
SELECT COUNT(X.X2.value('(./text())[1])', 'varchar(15)')) AS X2
FROM #table1 T1
CROSS APPLY T1.BC.nodes('/x/x1/x2') X(X2)
WHERE AC = 10;
推荐阅读
- c# - 格式字符串 {0:d MMM YYYY} 如何工作?
- ffmpeg - 将 ffmpeg 原始数据请求到 mp4 容器示例
- android - 如何在统一的导出项目中添加额外的代码行到 android studio?
- javascript - 将数据从一个数组复制到另一个数组
- c - 使用 Viete 公式逼近 C 中 pi 的值
- google-oauth - Dialogflow API 不记名令牌
- html - 宽度为 100%,但内容仍未填满页面
- c# - 在 RadGrid 中使用 RenderMode 时出现错误
- python - 选择每组的最大值
- eclipse - Eclipse插件签名证书