问题标签 [select-for-xml]

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 投票
3 回答
1707 浏览

xml - 如何将具有多列的行转换为具有两列(字段名和值)和多行的表?

因为我讨厌要求具体的解决方案,所以这里是我的问题的背景,以防我以错误的方式接近它。如果您想跳过背景并直接回答问题,请跳至粗线。我正在创建一个 PDF 表单,该表单将预填充来自 SQL 数据库的数据。为此,我需要将数据库中的数据导出到 XFDF 文件中,然后我可以轻松地将其与空白 PDF 表单合并以填写值。

XFDF 文件具有以下格式:

其中“FirstName”和“LastName”对应于 PDF 表单上的字段名称,“John”和“Smith”是数据库中用于填充表单的对应值。

所以我的目标是创建 XFDF 文件,并使 PDF 上的字段名称与表中列的名称相对应。我目前的方法是使用 SELECT FOR XML EXPLICIT 语句。要使用它,我首先需要将数据选择为 for xml 显式语句所需的“通用表”格式,该格式对于原始数据表中的每一列都有单独的行。我可以手动浏览每个字段,为每个列编写单独的选择语句 - 例如,FirstName 列部分看起来像:

(我不确定 select for XML 语句的语法是否完全正确,但应该是这样的)

如果我对原始表中的每一列都做了一个这样的选择语句(加上一个用于根级“字段”元素,然后将它们联合在一起,它应该创建我需要的表,然后执行 SELECT FOR XML EXPLICIT 语句。

但是,此表单上有大量字段(政府机构!是的!),我更喜欢某种方式以编程方式执行此操作。

所以现在我已经给出了背景,这是我的实际问题。如果您阅读了背景并认为我的方法很糟糕,请告诉我。

我需要一种方法来获取包含这样一行的表:

并从中构造一个新表,如下所示:

如果这是有效的,我会这样做:

显然这是不可能的,并且您不能使被选择的列成为变量。我查看了这个问题(在 SQL server 2008 上的 Select 语句中使用变量列名),最佳答案可能很有希望,但它以“但这一切都非常可怕,恕我直言”结束。在踏上这条路之前,我想研究一下不是“非常可怕”的解决方案。有什么建议么?

0 投票
1 回答
271 浏览

sql-server - tsql for XML 将值格式化为元素

我正在尝试将列中的值作为 XML 元素获取。是否可以在 sql server 中使用 For XML 来执行此操作?

我想从选择查询的单独行中获取以下内容。

这将帮助我转义值中的无效字符,以便它们可以正确地序列化为 XML。

是否可以从 FOR XML 查询中获得此返回?

0 投票
1 回答
30 浏览

sql-server - 需要特定的 XML 布局

我有下表:

内容如下:

当我想从此内容创建 XML 时,我使用

这让我回来了

但我需要但我无法返回的是

我需要将其编写为单独的 XML 文件,对于每个 stlh_num 都需要一个新文件。

这甚至可能吗?

0 投票
2 回答
4300 浏览

sql-server - SQL Server SELECT FOR XML 如何获取同一级别的两个元素

我有两个不同的 XML 片段要放在一起。

例如,第一部分的 SQL 如下所示:

一旦执行,你会得到这个:

第二个在这里:

你会得到这个:

现在我将这两部分放在一起:

结果如下:

但我不想在那里有元素“aa”和“bb”。我很想得到这个:

但我不知道如何实现这一目标。

有什么提示吗?

0 投票
1 回答
2353 浏览

sql-server - 选择for xml语句生成excel sheet数据格式

我正在尝试编写一个 sql 查询,该查询将以我可以转换为 excel 电子表格的格式生成 xml。所以原来的sql表包含以下数据

到目前为止,我设法生成的 sql 查询如下

这将产生以下 xml

所以我需要得到的是下面的xml格式

现在我已经求助于对第一个 xml 格式进行转换以获得所需的输出,但是我希望构建一个 sql 查询,我可以使用它来直接生成它,而无需进行额外的转换。谢谢你的帮助。

0 投票
2 回答
1937 浏览

sql-server - FOR XML SQL Server - 输出 XML 中的变量元素名称

我对FOR XMLSQL Server 很陌生,我已经搜索了相当多的内容,但找不到答案。

我可以使用“for xml”来获得一个变量元素名称,其中元素名称不是硬编码的,而是取自每行中的一个单元格?举个例子……

ORDERS

FOR XML询问:

所需输出:

我知道我能够为元素名称提供属性,并且我可以提供如下所示的个人ORDERORDERS属性,STATUS但不幸的是,这不是接收 XML 文档的人所寻找的:(

输出:

如果可能的话,我希望能够在 SQL Server 中完成所有这些工作。非常感谢,如果你能在这方面帮助我。

0 投票
1 回答
98 浏览

sql-server - 在 FOR XML 子句中对 XML 元素进行分组

我正在尝试从我的临时表创建一个结构 xml 文档。临时表采用以下格式。

我正在尝试以以下形式创建 xml 格式:

我尝试了上面的查询,但说子查询返回了超过 1 个值你能告诉我我在这个查询中缺少什么吗?有没有更好的方法来处理这种情况。

提前致谢

0 投票
2 回答
86 浏览

sql-server - 如何在 SQL Server 的 XML 投影中输出原始 xml,而不引入额外的 xml 根元素

给定以下尝试构造 XML 的 T-SQL 片段。

生成的 XML 是:

如何在没有UnwantedElement的情况下获得相同的输出,使其看起来像下面的示例。

0 投票
1 回答
68 浏览

sql-server - 使用for xml生成sql语句后如何去掉特殊字符

我已经生成了用于审计跟踪的插入语句for xml,它生成了正确的插入语句。见下文是生成的内容。

这是Print @SQL输出:

但是,当我尝试使用执行时,EXECUTE(@SQL)我收到一条错误消息:

'&' 附近的语法不正确。

0 投票
2 回答
81 浏览

sql - 使用 for xml 显式返回结果时,SQL Server 2000 和 SQL Server 2014 返回的值不同

我们已将数据库从 SQL Server 2000 转换为 SQL Server 2014。我们需要 XML 输出并使用 T-SQL 的for xml explicit选项返回 XML。

转换期间已保留时间戳值。即常规查询返回0x00000000057A12B8两个服务器上的时间戳值。

显式使用 xml 时,SQL Server 2014 输出为<Ts>AAAAAAV6Erg=</Ts>,SQL Sever 2000 输出为<Ts>91886264</Ts>

任何人都可以解释其中的区别吗?