簡體   English   中英

SQL Server -XML節點不返回多個記錄

[英]SQL Server -XML nodes not returning multiple records

我試圖讓我的SQL,XML節點和Cross應用全面發展,我本以為以下代碼將返回3行數據,但我只能得到其中的一行。 我以為使用Cross apply將查詢重新加入自身將為我解決這個問題。

有人可以告訴我我在做什么錯嗎?

提前致謝

DECLARE @XML AS XML;

SELECT @XML = ('<Deal deal_id="821">
  <Application_owner>me</Application_owner>
   <Deal_files>
    <File>file1.doc</File>
    <File>file2.pdf</File>
    <File>file3.xcl</File>
  </Deal_files>
</Deal>
')

select 
    t.n.value('@deal_id', 'int') as [ID],
    f.n.value('(File)[1]','varchar(50)') as [FILENAME]
from 
    @XML.nodes('Deal') t(n)
cross apply 
    t.n.nodes('Deal_files') f(n)

你很親密

DECLARE @XML AS XML;

SELECT @XML = ('<Deal deal_id="821">
  <Application_owner>me</Application_owner>
   <Deal_files>
    <File>file1.doc</File>
    <File>file2.pdf</File>
    <File>file3.xcl</File>
  </Deal_files>
</Deal>
'
)

Select 
    ID = t.n.value('@deal_id', 'int'),
    FileName = f.n.value('(.)[1]','varchar(50)') 
From  
    @XML.nodes('Deal') t(n)
Cross Apply 
    t.n.nodes('Deal_files/*') f(n)

返回

ID  FileName
--------------
821 file1.doc
821 file2.pdf
821 file3.xcl

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM