在 SQL 中读取 XML BOOLEAN 值
Posted
技术标签:
【中文标题】在 SQL 中读取 XML BOOLEAN 值【英文标题】:READ XML BOOLEAN Values in SQL 【发布时间】:2014-05-15 19:41:14 【问题描述】:如何在 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
【问题讨论】:
您是否正在编写 SQL(结构化查询语言)并且真的是指 Microsoft SQL Server(实际产品)?如果是:请添加sql-server
标签以明确这一点。如果不是:什么这是用于数据库系统的?
【参考方案1】:
这会将字段作为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
【讨论】:
Oracle 中也没有布尔值,因此 OP 可能必须将值解码为 varchar2(例如“TRUE”或“FALSE”)或者可能是“1”或“0”,具体取决于他的/她的喜好。参考:***.com/questions/30062/boolean-field-in-oracle和asktom.oracle.com/pls/apex/…以上是关于在 SQL 中读取 XML BOOLEAN 值的主要内容,如果未能解决你的问题,请参考以下文章
通过 PL SQL 读取 XML(存储在 Long 变量中)
读取 XML 数据并构建查询以将值插入 SQL Server DB 的最佳方法是啥?