如何从包含xml字符串的文本列中选择特定值?

时间:2013-09-22 10:22:59

标签: sql xml regex string sql-server-2008-r2

我正在使用sql server 2008 r2,我的my_table包含类型为my_col的{​​{1}},其中包含text,我想从根元素中选择一个属性当我从表中选择一个特定的行时,该xml并将其转换为xml类型(该属性采用值'true'/'false'),而不是选择整个字符串并将其传递回服务器作为一个很长的字符串,我可以一次选择多行。我对regex或sql不太好。这是我的text / xml列的格式:

bit

我只想为<rootElementName <!--lots of attributes--> Recommended="false"><!--...lots of stuff in here...--></rootElementName> 的{​​{1}}和0行选择Recommended="false"

1 个答案:

答案 0 :(得分:4)

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

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

我从this问题和this问题中查找/调整了内容。

转换想法来自here

这是一个有效的 SqlFiddle