sql - 在 SQL 中读取 XML BOOLEAN 值

标签 sql sql-server xml boolean

如何从 SQL 中的 XML 列读取 boolean 值。下面是示例代码。是否可以使用 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

最佳答案

这会将字段返回为 BIT 列,大多数语言会将其解析为 boolean 值(SqlServer 中没有 boolean 值)。

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

关于sql - 在 SQL 中读取 XML BOOLEAN 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22846758/

相关文章:

mysql唯一编号生成

java - SQL Server 排序规则以匹配 Java 不区分大小写的 Unicode 比较

sql-server - 无法在 Linux SQL Server docker 镜像中绑定(bind)挂载 Windows 文件夹

sql - 在.net中的Entity Framework中记录LINQ to SQL生成的SQL

sql-server - 使用 TSQL 从 XML 中删除具有特定值的节点

c# - C# 中的 XML 序列化

mysql - 无法识别的语句类型。 (在位置 0 的 "IF"附近)- 用法 IF LIKE 和 LIKE

sql - T-SQL 如何获取 2 周支付期的日期范围

sql-server - 没有特定表的MSSQL数据库备份

android - Gradle Jenkins Lint 报告