Sql server 从SQL中的XML中选择数据

Sql server 从SQL中的XML中选择数据,sql-server,xml,Sql Server,Xml,从SQL Server数据库中保存的XML文本中获取某些数据时遇到问题。我的资料如下: 2. SP-CTe-25-05-2017 351000011484798 104 Lote processado 35 2. SP-CTe-25-05-2017 35170623838348000310570000000058731000058731 2017-06-22T21:28:18-03:00 232 雷杰奥:也就是说,这是一个信息时代 您可以定义一个默认名称空间和值来获得如下输出 DECLARE

从SQL Server数据库中保存的XML文本中获取某些数据时遇到问题。我的资料如下:


2.
SP-CTe-25-05-2017
351000011484798
104
Lote processado
35
2.
SP-CTe-25-05-2017
35170623838348000310570000000058731000058731
2017-06-22T21:28:18-03:00
232
雷杰奥:也就是说,这是一个信息时代

您可以定义一个默认名称空间和
值来获得如下输出

DECLARE @SampleData AS TABLE
(
    XmlValue xml
)

INSERT INTO @SampleData
(
    XmlValue
)
VALUES
(N'<retConsReciCTe xmlns="http://www.portalfiscal.inf.br/cte" versao="3.00">
  <tpAmb>2</tpAmb>
  <verAplic>SP-CTe-25-05-2017</verAplic>
  <nRec>351000011484798</nRec>
  <cStat>104</cStat>
  <xMotivo>Lote processado</xMotivo>
  <cUF>35</cUF>
  <protCTe versao="3.00">
    <infProt>
      <tpAmb>2</tpAmb>
      <verAplic>SP-CTe-25-05-2017</verAplic>
      <chCTe>35170623838348000310570000000058731000058731</chCTe>
      <dhRecbto>2017-06-22T21:28:18-03:00</dhRecbto>
      <cStat>232</cStat>
      <xMotivo>Rejeição: IE do destinatário não informada</xMotivo>
    </infProt>
  </protCTe>
</retConsReciCTe>')

;WITH XMLNAMESPACES (default 'http://www.portalfiscal.inf.br/cte')
select sd.XmlValue.value('(/retConsReciCTe/@versao)[1]','varchar(20)') 
                                                             AS Versao
FROM @SampleData sd

你的预期输出是什么?我想为atribute versao拍摄内容。在这种情况下,3.00
Versao
3.00