如何从SQL中的XML列读取布尔值。下面是示例代码。使用xquery值函数是否可以实现。

 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_Previor_报告为False,Bar_Multiple_分支为True

最佳答案

这将以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);

Fiddle here
您始终可以通过另一个投影进行进一步处理,例如here

08-25 12:20
查看更多