0

如何获得下面指定的输出

DECLARE @txml XML 
SET @txml ='<row><ch>   </ch><unicode_value>9</unicode_value><cnt>3</cnt></row><row><ch>
</ch><unicode_value>10</unicode_value><cnt>5</cnt></row><row><ch>
</ch><unicode_value>13</unicode_value><cnt>5</cnt></row><row>
<ch> </ch><unicode_value>32</unicode_value><cnt>962</cnt></row>
<row><ch>&amp;</ch><unicode_value>38</unicode_value><cnt>32</cnt></row>
'
SELECT  x.value('cnt', 'int') AS cnt,
    x.value('ch', 'nvarchar(10)') AS ch,
    x.value('unicode_value', 'int') AS unicode_value
FROM @txml.nodes('/row') AS tbl( x )            

about 所需的输出应该类似于

cnt | ch | unicode_value|
32 | &  | 38|
8 | ( | 40|

ETC

4

1 回答 1

1

使用新的 XML 结构,您应该执行以下操作:

SELECT  x.value('(cnt)[1]', 'int') AS cnt,
    x.value('(ch)[1]', 'nvarchar(10)') AS ch,
    x.value('(unicode_value[1])', 'int') AS unicode_value
FROM @txml.nodes('/row') AS tbl( x )          

演示

于 2013-04-04T05:29:28.757 回答