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!我应该想到这一点,谢谢。 :-) –