[英]How to query the xml in SQL XML on a SQL Server 2008 database
我有一个SQL Server 2008数据库。 有一个名为Documents
的表,其中包含以下模式:
Id int PK
DocumentXml xml
xml文档看起来像:
<docroot>
<name>Some Name</name>
</docroot>
我想选择/docroot/name
的文本值以“S”开头的所有记录(不区分大小写)。
如何以最佳性能执行此查询?
我想选择
/docroot/name
的文本值以“S”开头的所有记录(不区分大小写)。
使用此XPath表达式 :
/*/name[starts-with(translate(.,'S','s'), 's')]
不确定性能 - 但你可以做这样的事情:
SELECT (list of columns)
FROM dbo.Documents
WHERE DocumentXml.value('(/docroot/name)[1]', 'varchar(100)') LIKE 'S%'
如果数据库排序规则不区分大小写,则此LIKE
操作也不区分大小写。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.