Sql server 2012 SQL server 2012中的Xquery语法错误

Sql server 2012 SQL server 2012中的Xquery语法错误,sql-server-2012,sqlxml,xquery-sql,Sql Server 2012,Sqlxml,Xquery Sql,我想在处理xml数据时返回sql数据库中的字符“o”,因此我编写了以下查询: use master select song_type.query ('table/[where o.name like % o %]') from xmldata 但程序返回一个错误,说明: Msg 9341,第16级,状态1,第2行 XQuery[xmldata.song_type.query()]:靠近“[”的语法错误,应为步骤表达式 请告诉我如何解决这个问题。试试这个 select * from xmld

我想在处理xml数据时返回sql数据库中的字符“o”,因此我编写了以下查询:

use master 
select song_type.query ('table/[where o.name like % o %]')
from xmldata
但程序返回一个错误,说明:

Msg 9341,第16级,状态1,第2行
XQuery[xmldata.song_type.query()]:靠近“[”的语法错误,应为步骤表达式

请告诉我如何解决这个问题。

试试这个

select * 
from xmldata where cast(convert(varchar(max),song_type) as xml).value("o.name[0]","varchar(500)") like '% o %'

谢谢Dhaval,但不幸的是,当我执行它时,程序返回了一个错误:Msg 529,16级,状态2,第1行不允许从数据类型int显式转换为xml。Dhaval请允许我将完整的查询发送给您查看吗?Dhaval实际上我正在处理的是Xquery。也就是说,我试图在我的表。系统拒绝更新的代码并给出错误消息:Msg 207,级别16,状态1,第2行无效列名“o.name”。Msg 207,级别16,状态1,第2行无效列名“varchar(500)“.Dhaval您可以看到下面的整个代码和表格:Dhaval数据类型应为xml,但您指定它为varchar。请帮助我!