繁体   English   中英

在SQL Server中从表中选择XML

[英]SELECT XML FROM TABLE IN SQL SERVER

我的表中存储了XML。 该表具有ID类型为int的列和值类型为XML的列。 我正在使用SQL Server 2012。

XML看起来像这样:

 <?xml version="1.0" encoding="utf-16"?>
 <Weather>
 <Forecast>
 <Description>sky is clear</Description>
 <Date>6.9.2013 23:50:36</Date>
 <MinTemp>13</MinTemp>
 <MaxTemp>13</MaxTemp>
 <Pressure>995</Pressure>
 <Humidity>68</Humidity>
 </Forecast>
 </Weather>

该XML最多可以包含Forecast部分。 我如何用简单的SELECT语句获取例如湿度值?

我一直在尝试在这里找到的多个Thin,但是我一直得到NULL,所以这就是我问这个问题的原因。 请帮忙...

如果您的xml中有多个Forecast,请使用节点功能:

select
    id, d.c.value('Humidity[1]', 'bigint') as Humidity
from test as t
    outer apply t.Data.nodes('Weather/Forecast') as d(c)

sql小提琴演示

尝试这样:-

select
  columnname
from
  MyTable
where
  columnname.value('(/Weather/Forecast)[1]', 'varchar(max)') like 'StringToSearchFor'

或如此链接中所建议的那样:-

SELECT 
[xmlField].value('(/Weather//Forecast/Description/node())[1]', 'nvarchar(max)') as columname
FROM [myTable]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM