2017-04-10 98 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服務器。你可以嘗試這樣的:

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 questionHow to create a MCVE

+0

我可以從特定表中選擇呢? – junaib

+0

@ junaib當然,假設XML坐在表格'TheTable'的列'TheXML'中,您可以嘗試'SELECT MAX(...)FROM表格作爲CROSS APPLY t.TheXML.nodes(...)AS A(DT)'。如果提供的片段只是更大的XML的(嵌套的)部分,則這可能不起作用。 – Shnugo

+0

謝謝,它工作正常。 – junaib

相關問題