READ SQL BOOLEAN SQL中的值

use*_*858 2 xml sql sql-server boolean

如何从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>'
Run Code Online (Sandbox Code Playgroud)

我想看到BAR_prior_report为False,BAR_multiple_branches为True

Stu*_*tLC 6

这将返回字段作为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);
Run Code Online (Sandbox Code Playgroud)

在这里小提琴

您可以随时通过另一个投影进行进一步处理,例如此处