如果您有varchar字段,则可以轻松SELECT * FROM TABLE WHERE ColumnA LIKE '%Test%'查看该列是否包含某个字符串。
SELECT * FROM TABLE WHERE ColumnA LIKE '%Test%'
您如何针对XML类型执行此操作?
我有以下返回仅具有“文本”节点的行,但我需要在该节点内搜索
select * from WebPageContent where data.exist('/PageContent/Text') = 1
您应该能够很容易地做到这一点:
SELECT * FROM WebPageContent WHERE data.value('(/PageContent/Text)[1]', 'varchar(100)') LIKE 'XYZ%'
该.value方法为您提供了实际值,您可以定义该值作为VARCHAR()返回,然后可以使用LIKE语句进行检查。
.value
请注意,这不会太快。因此,如果您的XML中有某些字段需要大量检查,则可以:
这样,您基本上可以将XML的特定部分“提取”到一个计算字段中,使其持久化,然后可以非常高效地对其进行搜索(哎呀,您甚至可以索引该字段!)。
马克