在 SQL Server 中创建对非结构化 XML 数据类型的查询



我有一列在SQL Server中保存xml数据。我的列中有 2 个值,数据如下所示:

<StoreSurvey>
    <BankName>United Security</BankName>
    <BusinessType>BM</BusinessType>
</StoreSurvey>

而这个:

<StoreSurvey>
    <AnnualSales>2000</AnnualSales>
    <BankName>United Security</BankName>
    <BusinessType>BM</BusinessType>
</StoreSurvey>

如您所见,这两个值在AnnualSales上有所不同。如何编写查询以返回带有AnnualSales=2000的记录?

抱歉,我在XML数据类型方面很陌生。

由于您的问题是不清楚您是要求加入两个结果集还是过滤记录,其中年销售额 = 2000

这是基于假设数据的示例

Declare @XmlStr XML;
SET @XmlStr='<StoreSurvey>
  <AnnualSales>2000</AnnualSales>
  <BankName>United Security</BankName>
  <BusinessType>BM</BusinessType>
</StoreSurvey>
<StoreSurvey>
  <BankName>United Security</BankName>
  <BusinessType>BM</BusinessType>
</StoreSurvey>';

只能获得年销售额 = 2000 的脚本

SELECT
    [Table].[Column].value('AnnualSales[1]', 'int') as 'AnnualSales ',
    [Table].[Column].value('BankName[1]', 'varchar(20)') as 'BankName',
    [Table].[Column].value('BusinessType[1]', 'varchar(50)') as 'BusinessType'
FROM 
    @XmlStr.nodes('/StoreSurvey') as [Table]([Column])
WHERE 
    [Table].[Column].value('(AnnualSales[1])[1]', 'int') = 2000

相关内容

  • 没有找到相关文章

最新更新