【发布时间】:2015-06-27 16:47:12
【问题描述】:
我见过examples 这样做,/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 万行(PK 限制为 10 行),以及实际的执行计划 是不同,但我不是阅读执行计划的专家。它还一直声称有/text() 的版本占总数的54%,没有的版本是46%。这表明存在某种差异。
【问题讨论】:
标签: sql-server tsql