【发布时间】:2021-11-17 03:47:26
【问题描述】:
我有一些 XML 数据存储在 SQL 表的列中,我需要获取其中一个 XML 项目组计数的所有变量。
查询如下所示:
select fd.stdFormData
from formdata fd
where fd.FormType = '1X'
返回的数据如下:
我需要对treatmentDiscussed 的结果进行分组计数,以获得如下所示的结果:
我在处理 SQL Server 表中的 XML 数据方面非常新手,因此我将不胜感激。提前致谢。
这是我目前所拥有的示例。不幸的是,由于返回的值也可能会出现子查询错误
子查询返回超过 1 个值。这是不允许的,当 子查询遵循 =、!=、、>= 或当子查询用作 一个表达式。
declare @Data XML ,
@treatmentReferrals varchar(50)
select @Data = (select fd.Data from formdata fd where fd.FormType = '1X' )
SELECT @Data.value('(/root//treatmentDiscussed/node())[1]', 'nvarchar(max)') as treatmentDiscussed
select @treatmentReferrals = (SELECT @Data.value('(/root//treatmentDiscussed/node())[1]', 'nvarchar(max)') as treatmentDiscussed )
CREATE TABLE #Data
(
treatmentReferrals VARCHAR(30)
)
INSERT INTO #Data (treatmentDiscussed)
VALUES (@treatmentDiscussed)
DROP TABLE #Data
【问题讨论】:
-
消耗性样本数据,而不是图像,可以帮助我们为您提供帮助。
-
提问时,您需要提供minimal reproducible example: (1) DDL 和样本数据填充,即 CREATE 表加上 INSERT T-SQL 语句。 (2) 你需要做什么,即逻辑和你的代码尝试在 T-SQL 中实现它。 (3) 期望的输出,基于上述#1 中的样本数据。 (4) 您的 SQL Server 版本 (SELECT @@version;)。全部在问题内,没有图片。
标签: sql sql-server xml