2017-04-10 4 views
0

私はclientという名前のテーブルを持ち、そのテーブルにはXML列があります。XML列から最大日付を選択

私の要件は、そのXML列から最大transaction_dateを選択することです。

XML:

<detail> 
    <transaction_date>2015-06-30</transaction_date> 
</detail> 
<detail> 
    <transaction_date>2015-05-29</transaction_date> 
<detail> 

答えて

0

あなたはRDBMSを述べませんでした。あなたの前の質問から、私はこれがSQL Serverだと仮定します。あなたはこのようにそれを試すことができます。将来の質問について

DECLARE @xml XML= 
'<detail> 
    <transaction_date>2015-06-25</transaction_date> 
</detail> 
<detail> 
    <transaction_date>2015-06-30</transaction_date> 
</detail> 
<detail> 
    <transaction_date>2015-05-29</transaction_date> 
</detail>'; 

SELECT MAX(dt.value(N'(transaction_date/text())[1]',N'date')) AS MaxTransactionDate 
FROM @xml.nodes(N'/detail') AS A(dt) 

は、実際のRDBMS(製品およびバージョン)でタグを付けてくださいとHow to ask a good SQL question読み、How to create a MCVE

+0

iは特定のテーブルからこれを選択することができますしてください? – junaib

+0

@junaib確かに、XMLがテーブルTheTableの中の 'TheXML'カラムに座っていると仮定すると、SELECT MAX(...)をTheTableから試してみることができますAST CROSS APPLY t.TheXML.nodes(...)AS A(dt) 'となる。提供されたフラグメントがより大きなXMLのちょうど(ネストされた)部分である場合、これは機能しないかもしれません。 – Shnugo

+0

ありがとうございます、それは正常に動作しています。 – junaib

関連する問題