1

我正在使用 sql server 2008 r2,我有my_table包含my_col的类型textwhich contains xml,我想从该 xml 的根元素中选择一个属性并将其转换为一个bit类型(该属性的值为“真”/“假”)当我从表中选择特定行时,而不是选择整个字符串并将其作为相当长的字符串传递回服务器,我可以一次选择多行。我不太擅长正则表达式或 sql。这是我的 text/xml 列的格式:

<rootElementName <!--lots of attributes--> Recommended="false"><!--...lots of stuff in here...--></rootElementName>

我只想选择0具有Recommended="false"1for的行Recommended="true"

4

1 回答 1

4

首先,您必须将文本列转换为 xml 类型,然后执行 XQuery。

SELECT convert(XML,my_col).value('(/rootElementName/@Recommended)[1]', 'bit') rec
FROM  my_table

我从这个问题和这个问题中查找/改编了一些东西。

转换思路来自这里

这是一个有效的SqlFiddle

于 2013-09-22T10:41:18.213 回答