簡體   English   中英

[1]在Xquery中的意義是什么

[英]What is the significance of [1] in Xquery

我是 SQL 服務器中的 xquery 新手。

我經常遇到使用 [1] 和屬性的 xquery 表達式。

有人可以解釋一下這是什么意思嗎?

這是一個例子

declare @aa xml
set @aa='<data>
  <row>
    <Value>1</Value>
    <Text>Masters</Text>
  </row>
  <row>
    <Value>2</Value>
    <Text>Transactions</Text>
  </row>
  <row>
    <Value>3</Value>
    <Text>Misch. Reports</Text>
  </row>
</data>'


select a.f.value('Value[1]','varchar(50)'),   --  why [1] here ?
   a.f.value('Text[1]','varchar(50)')         --  and here too..
 from @aa.nodes('/data/row') as a(f)

謝謝和問候

在 XPath 中, [expression]語法表示位置路徑上的謂詞 [1][position()=1]縮寫語法,意思是“第一個元素”。 在 SQL 服務器使用 XPath [1] (或任何其他確定性過濾至多一個元素的謂詞)是必需的,因為它將 XPath 表達式從返回任意數量元素的表達式轉換為確定性返回 0 或 1 元素的表達式,從而轉換為標量表達式,這就是.value()所需要的:

XQuery 最多只能返回一個值。

在這種情況下,您是說您想要當前/data/row的第一個Value元素和相同的第一個Text元素。 如果你把[2]放在那里,它就意味着第二個。 通過在您知道只有一行的地方放置 [1],您可以確保只有一個元素將輸入value function。

暫無
暫無

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

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