创建一个List并在SQL中解析它

时间:2015-03-24 22:38:59

标签: sql-server xml sql-server-2008 list

所以我有一个包含XML字符串形式的entry1的column1。我的任务是解析这个XML字符串并将输出细分为打印字符串中的子节点。 例如, 数据集看起来像这样:

<ParameterValues>
        <ParameterValue>
             <Name>A</Name>
             <Value>1</Value>
        </ParameterValue>
        <ParameterValue>
             <Name>B</Name>
             <Value>1</Value>
        </ParameterValue>
        <ParameterValue>
             <Name>C</Name>
             <Value>3</Value>
        </ParameterValue>
</ParameterValues>

我需要打印所有值的Name列和所有值的Value列。 像这样:

  • 名称 - 价值
  • A - 1
  • B - 2
  • C - 3

我遇到两个障碍。 首先,我如何存储这个&#34;表&#34; of x&#34; columns&#34;在列表中一次解析一个数据集。 其次,一旦我解决了这个问题,我就可以开始研究它了。

1 个答案:

答案 0 :(得分:0)

DECLARE @Xml XML = N'<ParameterValues>
                         <ParameterValue>
                             <Name>A</Name>
                             <Value>1</Value>
                          </ParameterValue>
                          <ParameterValue>
                              <Name>B</Name>
                              <Value>1</Value>
                          </ParameterValue>
                          <ParameterValue>
                              <Name>C</Name>
                              <Value>3</Value>
                          </ParameterValue>
                    </ParameterValues>'

查询

SELECT x.a.value('Name[1]','varchar(10)') AS Name
       ,x.a.value('Value[1]','varchar(10)') AS Value
FROM @Xml.nodes('/ParameterValues/ParameterValue') x(a)

结果集

╔══════╦═══════╗
║ Name ║ Value ║
╠══════╬═══════╣
║ A    ║     1 ║
║ B    ║     1 ║
║ C    ║     3 ║
╚══════╩═══════╝