在SQL中读取XML布尔值

在SQL中读取XML布尔值,sql,sql-server,xml,boolean,Sql,Sql Server,Xml,Boolean,如何从SQL中的XML列中读取布尔值。下面是示例代码。使用XQuery值函数是否可以实现 DECLARE @XML XML = '<form> <field name="BAR_prior_report" type="Boolean"><value>false</value></field> <field name="BAR_multiple_

如何从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>'
DECLARE@XML='XML'
假的
真的
'

我希望看到BAR_Preor_报告为False,BAR_多个分支为True

这将返回字段作为
列,大多数语言将其解析为布尔值(SqlServer中没有布尔值)


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

Oracle中也没有布尔值,因此OP可能需要将值解码为varchar2(例如“真”或“假”)或“1”或“0”,具体取决于他/她的偏好。参考:你是在写SQL(结构化查询语言)吗?你的意思是微软SQL Server(实际产品)?如果是:请添加
sql server
标记以明确这一点。如果不是:这是什么数据库系统?
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);