3
我見過examples做這樣的,有/text()
:從XML列中選擇屬性值時,是否需要/ text()?
SELECT someColumn.value('(/someElement[@someAttribute="some value"]/text())[1]', 'nvarchar(100)')
FROM SomeTable
,我已經看到了一些(包括MSDN)離開關/text()
步:
SELECT someColumn.value('(/someElement[@someAttribute="some value"])[1]', 'nvarchar(100)')
-- No /text() here ------------------------------------------------^
FROM SomeTable
這兩種形式都與我的工作數據。從風格以外的角度來看它有什麼重要嗎?如性能或假設,...
更新:我已經在「實際執行計劃」打開同一批次運行兩個查詢,使用一個簡單的合成示例約100萬行(限制爲10行由PK)和實際執行計劃是不同,但我並不是專家在閱讀執行計劃。它也一致聲稱/text()
的版本是54%,而沒有版本的版本是46%。這表明有某種差異。
Doh!我應該想到這一點,謝謝。 :-) –