[英]optimizing sql xml select query
<Data>
<Language Name="ru-Ru">
<Item Id="1">value</Item>
<Item Id="2">value2</Item>
</Language>
</Data>
是否有可能以这种方式运行它,只需查询:
SELECT id,
userId,
data.query('//Language[@Name="ru-Ru"]') AS myxml
FROM UserData
WHERE (myxml.query('//Item[@Id="9"]') like '%v%')
总而言之,我需要对每个项目进行参数比较,并且不想重复
'//语言[@名称= “RU-茹”]'
在每种情况下
您不能在where子句中重用别名列。 您可以使用cross apply
来做您想做的事情。 而你需要投你的where子句可以使用like
。
select
id,
userId,
myxml
from @T
cross apply
(select data.query('//Language[@Name="ru-Ru"]')) as lang(myxml)
where cast(myxml.query('//Item[@Id="9"]') as varchar(max)) like '%v%'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.