如何从SQL中的XML列读取布尔值。以下是示例代码。是否可以使用XQuery Value函数实现。
DECLARE @XML XML = '<form>
<field name="BAR_prior_report" type="Boolean"><value>false</value></field>
<field name="BAR_multiple_branches" type="Boolean"><value>true</value></field>
</form>'
我想看到BAR_prior_report为False,BAR_multiple_branches为True
答案 0 :(得分:5)
这会将字段作为BIT
列返回,大多数语言都会将其解析为布尔值(SqlServer中没有布尔值)。
SELECT
Nodes.node.value('(field[@name="BAR_prior_report"]/value)[1]', 'bit')
AS BAR_prior_report,
Nodes.node.value('(field[@name="BAR_multiple_branches"]/value)[1]', 'bit')
AS BAR_multiple_branches
FROM
@XML.nodes('//form') AS Nodes(node);
您始终可以通过其他投影传递此信息以进行进一步处理,例如: here