问题标签 [for-xml-path]

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 投票
1 回答
20550 浏览

sql-server - FOR XML PATH(''):转义“特殊”字符

此代码基本上将基于一个字符串中的位置的字符转换为另一个字符串中相同位置的字符,并针对表中的所有行运行。

当我运行这个(简化版):

我得到以下信息:

但需要:

除了 ,还有什么方法REPLACE()可以让空格正确显示吗?在我的实际代码中,这也发生在换行符上。

这可以以更好的方式重写吗?我基本上只是使用 将FOR XML PATH('')各个行值连接在一起。

0 投票
2 回答
5434 浏览

sql-server - SQL Server 2005 在子选择问题中选择带有联合的 XML 路径

我对 SQL 服务器“选择 XML 路径”查询相当有经验,但现在我遇到了一个奇怪的问题。

以下查询工作正常:

这将导致(对于虚拟数据集)在此 XML 中:

在我这个(更大的)声明的结果中,我也需要第二个键域:

所以我用联合选择将我的(子)查询更改为:

但现在我收到错误“当 EXISTS 未引入子查询时,选择列表中只能指定一个表达式。”

我知道在子查询中可能有多个记录,其中用于 XML 路径巫婆会导致多个元素。但我不明白为什么这不能通过工会来完成。

有人可以让我朝着正确的方向前进,如何在我的(子)查询中使用 2 个关键字段来完成 XML 吗?

非常感谢你。

0 投票
5 回答
12757 浏览

sql - SQL Server 2005 中带有“FOR XML PATH”的 XML 声明

下面是我已经创建的查询的简化版本。查询工作正常,但我无法弄清楚如何在生成的 XML 顶部获取 XML 声明。我已经尝试了多种方法并在 Google 上进行了广泛搜索,但可惜我似乎无法找到如何做到这一点......或者即使它是可能的。

给我...

我要...

提前感谢您提供的任何帮助。

0 投票
1 回答
10361 浏览

sql-server - 如何向以元素为中心的 FOR XML PATH 查询添加属性

我正在构建一些 HTML 以包含在电子邮件正文中并使用 sp_send_dbmail 发送。我想右对齐一些列。有没有一种简单的方法来做到这一点(没有使用 FOR XML EXPLICIT 重写它)?

0 投票
4 回答
1039 浏览

sql - CDATA 部分真的没有必要吗?

之所以提出这个问题,是因为开发人员 Michael Rys 相当激进地拒绝将 CDATA 部分的解析包含在 FOR XML PATH 中,因为“您存储的数据中没有语义差异”。

我在 CDATA 节点和其他需要使用特殊或难看字符的内容中存储了 HTML 块。但是,我觉得没有资格挑战 Rys 有争议的断言,因为我想,在我为方便起见而使用 CDATA 的场景中,从技术上讲,他是正确的。

真正让我吃惊的是,当开发人员在互联网上寻求有关如何使用 FOR XML PATH 呈现 CDATA 段的建议时,受访者不断指示他们使用 FOR XML EXPLICIT,Rys 引用的 XML 呈现方法是“查询从地狱”。

如果我们真的可以在任何人可以建议的每个用例中不使用 CDATA,我想我们应该停止抱怨并从此拒绝 CDATA 的使用。但是,如果有明确定义的情况下 CDATA 是必不可少的,Rys 已经承诺他会将其烘焙到 FOR XML PATH 中,并在此问题的最顶部链接中继续前进。

那么它会是哪一个呢?CDATA 部分真的是过去的遗迹吗?或者 Rys 是否应该伸出手指并允许在 FOR XML PATH 中解析 CDATA?同时,在我们处理它的同时,是否有任何技巧可以让 FOR XML PATH 返回 CDATA 部分?

0 投票
1 回答
806 浏览

sql - 如何在动态 sql 的 SQL 服务器中停止 FOR XML PATH 的空白输出?

我试图为数据保险库生成一个脚本,下面是动态 sql,它将为多对多关系生成表:

将源表的主键添加到注释中的定义的部分 --GET PRIMARY KEYS --HAS SOME PROBLEMS to @LOAD_DATE_RS。如果该部分返回空白输出(意味着没有带有额外主键的表),则整个输出为空白。我该如何阻止这个?如果那部分是空白的,那么我仍然需要构建另一个动态 SQL,以便我可以执行它来获取我想要的表。请帮忙

0 投票
2 回答
9415 浏览

sql-server - SQL FOR XML PATH 列表和 COUNT

我有一张桌子,例如:

我需要一个查询来返回:

换句话说,我想要一个列表和按日期计算的名称。我能想到的最好的是:

有没有更优雅的查询?

0 投票
2 回答
1221 浏览

sql - 用UNION组合不同的表列,用XML区分列名

虽然这可以返回正确的结果,

结果:

问题在于,由于 UNION 的原因,结果并不能区分我尝试使用的不同命名。如何让两者都显示在一个结果集下但名称不同?我正在考虑用 XML 来做到这一点,但我不知道怎么做?

将不同查询与不同结果/行数组合并将所有内容放在一个大 XML 下的最佳方法是什么?

好的,我能想到的最好的方法是:

会给我结果(再次,正如预期的那样,因为联盟)

或以下内容:

0 投票
1 回答
888 浏览

sql - 尽管存在空值,但仍存在 Xml 元素

我有一个相当大的SELECT ... FOR XML PATH. 如您所知,默认情况下,与具有空值的字段对应的 xml 元素不会出现在结果 xml 树中。这对我来说似乎是一个真正的问题,我希望所有元素都出现,无论值是否为空。

有没有一种方法可以实现这一点,而无需逐个包围每个字段ISNULL(...,'')(我的 SELECT 中有 50 多个字段!)并且无需更改FOR XML PATHintoFOR XML ELEMENTS以使用XSINIL开关(不幸的是,仅适用于ELEMENTS)?

顺便说一下,我怀疑这两个不完全统计的解决方案会导致不同的输出:<fieldname></fieldname><fieldname/>分别。如果可能的话,我更喜欢第一个,但无论如何我都渴望阅读您的宝贵建议。

提前致谢 !:-)

0 投票
1 回答
5540 浏览

xml - FOR XML PATH 和 xsi:nil 属性

大家早上好,

我有一个使用 FOR XML PATH 输出 .xml 文件的大型查询。我有主要选择,它基本上只代表根,即

然后我在这个主选择中有后续的嵌套选择,即

但是,放置在 for xml 路径上的元素 xsinil 参数对包含的子查询没有任何影响,即 Level1 元素只是一个封闭标记。我需要将其显示为 xsi:nil="true"。

我可以通过将元素 xsinil 参数添加到 for xml 路径语句来实现这一点,例如

这样做的问题是命名空间声明在子查询级别重复。

我可以找到很多使用元素 xsinil 的示例,但没有一个可以在没有重复命名空间声明的情况下应用于子查询。

为了确认,我正在寻找以下输出:

希望你能帮忙!