Как выбирать стоимость, содержавшую в XML?

Добрый вечер коллеги я стараюсь получать стоимость, содержавшую в XML посредством решения select однако консультация только бросает мне недействительную стоимость.

DECLARE @xml XML

SET @xml = '<?xml version="1.0" encoding="UTF-8"?>
<Values version="2.0">
<array name="results" type="record" depth="1">
    <record javaclass="com.wm.util.Values">
        <value name="shiftId">5c642c6110c2c1b6120000ec</value>
        <value name="shiftnumber">S-WCKBHMD</value>
        <value name="createdat">2019-02-13T14:40:33.356Z</value>
        <value name="total">$13,566,582,391.00</value>
        <value name="TotalTaxes">$1,871,253,000.00</value>
        <value name="stationid">5bb4fb8f800da28e05af19ea</value>
        <value name="closed">true</value>
        <value name="channel">callcenter</value>
    </record>
    <record javaclass="com.wm.util.Values">
        <value name="shiftId">5c757323f42b61591c000041</value>
        <value name="shiftnumber">S-XVPBERP</value>
        <value name="createdat">2019-02-26T17:10:59.965Z</value>
        <value name="total">$24,316,266,073.00</value>
        <value name="TotalTaxes">$3,353,970,000.00</value>
        <value name="stationid">5bb4fb8f800da28e05af19ea</value>
        <value name="closed">true</value>
        <value name="channel">callcenter</value>
    </record>
    <record javaclass="com.wm.util.Values">
        <value name="shiftId">5c7ec8709ad07e9711000013</value>
        <value name="shiftnumber">S-TBTNC3T</value>
        <value name="createdat">2019-03-05T19:05:20.033Z</value>
        <value name="total">$291,624,000.00</value>
        <value name="TotalTaxes">$40,224,000.00</value>
        <value name="stationid">5bb4fb8f800da28e05af19ea</value>
        <value name="closed">true</value>
        <value name="channel">callcenter</value>
    </record>
</array>
</Values>'

 SELECT 
    shiftId = Node.Data.value('(shiftId)[1]', 'CHAR(50)'),
    shiftnumber = Node.Data.value('(shiftnumber)[1]', 'CHAR(50)'),
    createdat = Node.Data.value('(createdat)[1]', 'datetime')
 FROM @xml.nodes('Values/array/record') Node(Data)

 [![Resultado de la consulta][1]][1]
1
задан 21.03.2019, 02:08
1 ответ

Идея почти хорошо, но ты пробуешь выбирать из-за property ямс не из-за tag xml, серьезного доставать из-за tag "оцените" и двигать тебя из-за произведенного array segГєn posiciГіn.

Пример:

  SELECT 
    shiftId = Node.Data.value('(value)[1]', 'CHAR(50)'),
    shiftnumber = Node.Data.value('(value)[2]', 'CHAR(50)'),
    createdat = Node.Data.value('(value)[3]', 'datetime')
 FROM @xml.nodes('Values/array/record') Node(Data)

Надеялся, что он помогает тебе!

1
ответ дан 02.12.2019, 05:21