我想创建一个查询整个XML列中字符串的查询。
我的表名是msg
。它有两个字段ID
和xmlmsg
ID
的类型为INT,xmlmsg
的类型为XML。
我想编写一个查询以在xmlmsg
列中搜索“123456”并返回ID。
由于
答案 0 :(得分:0)
这应该有效。我用Xquery来做这件事。有几个网站有助于学习Xquery,并在这里找到一个这样的网站进行练习ClickMe
DECLARE @msg TABLE
(ID INT IDENTITY(1, 1), XMLmsg XML)
INSERT INTO @msg
(
XMLmsg
)
SELECT '<Root>
<MsgDescription MsgID="123456">
</MsgDescription>
</Root>'
UNION ALL
SELECT '<Root>
<MsgDescription MsgID="123457">
</MsgDescription>
</Root>'
UNION ALL
SELECT '<Root>
<MsgDescription MsgID="123458">
</MsgDescription>
</Root>'
SELECT *
FROM @msg
WHERE XMLmsg.exist('(/Root/MsgDescription[@MsgID=''123456''])') = 1
GO