gpt4 book ai didi

SQL Server 查询元素值的 xml 属性

转载 作者:数据小太阳 更新时间:2023-10-29 01:44:52 26 4
gpt4 key购买 nike

抱歉,如果这是在其他地方,我发现了很多类似的例子,但我无法让它与我的数据一起使用。 2 天后,我需要一个答案:(

基本上有一个 SQL Server 表,其中有一列包含 XML 数据。此数据包含我需要提取的值。

这是我的 XML。

  <CustomFields xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.kaseya.com/vsa/2007/12/ServiceDeskDefinition.xsd">
<Field fieldName="AutoCategory">Event Log</Field>
<Field fieldName="SType">Event Log</Field>
<Field fieldName="STag1">AgentGuid</Field>
<Field fieldName="STag2">AlertRegistrationId</Field>
<Field fieldName="STag3">LogType</Field>
<Field fieldName="SValue1">619764177412541</Field>
<Field fieldName="SValue2">104</Field>
<Field fieldName="SValue3">1380569194</Field>
<Field fieldName="SdTicketId">RPSv1006330</Field>
<Field fieldName="AgentName">bla bla</Field>
<Field fieldName="MachineGroupGuid">86115414719112271316891312</Field>
<Field fieldName="OrgFk">59165166782128125214185317</Field>
<Field fieldName="GuidAgent">619764177412541</Field>
<Field fieldName="AlertCount">0</Field>
<Field fieldName="TicketTitle">bla bla</Field>
<Field fieldName="LegacyId">152262</Field>
<Field fieldName="LegacyRef">152262</Field>
<Field fieldName="CwStatus">2</Field>
<Field fieldName="CwTicketId">89495</Field>
</CustomFields>

我需要能够提取与 CwTicketId 字段名称关联的值。

所以本质上,我想通过 XML 查找具有 fieldName = "CwTicketId" 的节点并返回 89495 或等效值。

下面是我自己想出的代码,它提取了值,但问题是有时 XML 的排序不同,所以值并不总是在我指定的行上,因此它返回准确的数据.

;WITH XMLNAMESPACES(DEFAULT N'http://www.kaseya.com/vsa/2007/12/ServiceDeskDefinition.xsd')
SELECT
ref as ServiceDeskID,
sdSummary as ServiceDeskSummary,
customFields.value('(/CustomFields/Field/node())[17]', 'varchar(100)') as LegacyIDTicketing,
customFields.value('(/CustomFields/Field/node())[19]', 'varchar(100)') as CWIDTicketing
FROM
[ksubscribers].[kasadmin].[SDIncident]

第二个值我也需要,但如果我能弄清楚如何提取一个值,我可以复制另一个值。

希望有人能帮助我,因为我已经开始扯掉我的头发了!

感谢您的帮助!

最佳答案

;WITH XMLNAMESPACES(DEFAULT N'http://www.kaseya.com/vsa/2007/12/ServiceDeskDefinition.xsd')
select
T.C.value('data(.)', 'nvarchar(128)')
from [YOUR_TABLE] as Y
outer apply Y.[YOUR_XML_COLUMN].nodes('/CustomFields/Field[@fieldName="CwTicketId"]') as T(C)

关于SQL Server 查询元素值的 xml 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12913724/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com