问题标签 [xquery-sql]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
8819 浏览

sql - XQUERY - 如何在 'value()' 函数中使用 sql:variable?

下面的查询试图选择给定节点的子节点。如何使用变量而不是对子节点进行硬编码,以便可以将它们作为参数传递给 SProc?

0 投票
1 回答
863 浏览

sql-server - XQUERY SQL - 如何将单个节点元素作为变量传递?

是否有另一种方法可以动态传递节点元素而不是下面显示的 - ?

例如,即使我试图给出完全限定的路径,我也不想硬编码节点元素,而是想将它们作为参数单独传递。

在该部分下 -

示例:使用 sp_executesql 进行查询

@ http://msdn.microsoft.com/en-us/library/ms345118(v=sql.90).aspx

它说 -

查询包含通配符 (*) 和使用节点名称的节点测试,很难很好地优化。因此,它的性能比原始查询和查询构造方法差得多。

0 投票
1 回答
1124 浏览

sql-server - 如何优化“XQuery”SQL

我在具有 10,000 条记录的表的 XML 类型列中有一个这样的 XML 层次结构-


我有一个这样的查询 -

如何进一步优化此查询。目前,它需要 2 秒,如果我做进一步的 INNER JOINS,它会增加时间。我尝试在 XML 列上创建 PRIMARY 索引,但这需要更多时间!

编辑 - 如果我硬编码路径而不是使用变量,那么它需要不到一秒钟。但是,我希望它在表值函数中并且不能硬编码路径?


编辑 - 解决方案

上面的查询只需要大约一秒钟。它似乎是最快的。因此,可以使用ADO.NET功能动态准备和执行上述查询,而不是使用带有参数的表值函数

请纠正我...?

0 投票
1 回答
69 浏览

sql-server-2005 - 在 MSSQLServer 2005 中使用 XQuery 实现 IN 查询

我正在尝试使用 IN 表达式查询 xml 列。我还没有找到执行此类查询的本机 XQuery 方式,因此我尝试了两种解决方法:

  1. 将 IN 查询实现为 OR 的串联,如下所示:

    /li>
  2. 使用 String fn:contains(...) 方法实现 IN 查询,如下所示:

    /li>

其中给定参数是一个(长)字符串,其值由“|”分隔

问题是版本 1. 不适用于超过 50 个参数。服务器抛出内存不足异常。版本 2. 有效,但是非常非常慢。

有没有人 3. 想法?为了更完整地表述问题:给定任何 sql 本机类型的值列表,选择其 xml 列在 xml 中的特定字段具有给定值之一的所有行。

0 投票
2 回答
4593 浏览

sql-server - SQL Server XML 类型选择 Where Attribute = X From Any Tag

将在 Sections 列中正确检索具有以下值的记录:

但是错过了这个:

显然这是问题“ /sections/section/@value)[1]”,但我不理解语法,谷歌也没有太大帮助。我找到了一些让我走到这一步的代码,但我不知道如何修改它,以便它会查看所有标签,而不仅仅是第一个标签。我尝试删除[1]但出现以下错误:

0 投票
4 回答
1008 浏览

sql - 使用 XQuery 对 SQL 查询中 XML 的所有属性进行排序

如何在 SQL 中使用 XQuery 获取具有排序属性的 XML?

例如对于这个 XML:

必须返回:

0 投票
1 回答
589 浏览

sql - XML 模式中的任何元素都会阻止 XQuery

我有以下 XML 架构:

然后我以这种方式使用它:

SELECT给我以下错误:

如果没有xsd:any架构中的元素,上面的代码可以正常工作而不会出现任何错误。我究竟做错了什么?

0 投票
1 回答
244 浏览

tsql - xQuery - 返回 MAX 行

我正在拔掉我漏掉的头发!结果集都很好,但我现在需要做其他事情。这是 T-SQL

结果是

但是我需要的是代码的最新行,因此结果将显示为

0 投票
1 回答
6348 浏览

sql - 在 SQL Server 中使用 XQuery 将 XML 转换为表数据

是否可以在 SQL Server 中使用 XQuery 从输出中实现下表

编辑:我的要求有所改变,考虑我有一个存储以下 xml 和 UserID 的表

现在我怎样才能得到 ao/p 之类的

输出:

有没有可能实现?

0 投票
1 回答
1088 浏览

sql-server-2005 - 使用 XQuery modify 修复 SQL 更新以在 SQL 2005 上工作

我正在尝试将一堆字段从一个表移动到同一个表中包含的一个 xml blob。成功后,我将从表中删除该列。下面是我想出的一个非常简单的版本(没有 drop 列),这在 SQL 2008 上运行良好 - 但是我发现这在 SQL 2005 上不起作用。我得到了XQuery: SQL type 'datetime' is not supported in XQuery.错误由于字段的数量,实际上是通过在 SP 中执行构造的 SQL 语句来执行此操作的,但为简单起见,我在示例中使用了普通语句:

我试过用 with 包装sql:column("#Case.DecisionDate")xs:string(sql:column("#Case.DecisionDate"))但这似乎没有帮助。@marc_s 已经指出,直到 SQL 2008 才引入sql:column(在语句中的使用 - 所以我认为这是一个红鲱鱼。.modify(insert

由于这是一个一次性的迁移脚本并且只需要运行一次,我是否认为我应该离开 Set 方法并转向程序循环方法以满足我的要求。由于服务器版本的限制以及我想要实现的目标,这听起来像是正确的方法吗?任何指针都非常感谢。