0
<storage xmlns="http://energy" created-on="2013-01-21T05:00:15Z">
<country>Italy</country>
<Points>
    <point>Callato;Cellino</point>
</Points>
    </storage>

上記のデータは、上記から単独で作成されたものを取得するためのテーブル内の列 (xmlcolumn) です。以下のクエリを使用すると、null になります

 SELECT
 OutputXML.value('(storage/@created-on)[1]','date') 
  AS ProductType,*
FROM [DataOutput];

私がしているエラーは何ですか、ありがとうアルン

4

1 に答える 1

0

クエリの名前空間を指定する必要があります。

declare @t table (a xml)
insert into @t(a) values ('<storage xmlns="http://energy" created-on="2013-01-21T05:00:15Z">
<country>Italy</country>
<Points>
    <point>Callato;Cellino</point>
</Points>
    </storage>')

 SELECT
 a.value('declare namespace x = "http://energy";
          (x:storage/@created-on)[1]','date') 
  AS ProductType,*
FROM @t;

ここでは、読みやすくするために 2 行に分けています。ただし、そうする必要はありません。

結果:

ProductType a
----------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2013-01-21  <storage xmlns="http://energy" created-on="2013-01-21T05:00:15Z"><country>Italy</country><Points><point>Callato;Cellino</point></Points></storage>
于 2013-01-21T07:47:38.820 に答える