问题标签 [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.
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 语句中使用变量列名),最佳答案可能很有希望,但它以“但这一切都非常可怕,恕我直言”结束。在踏上这条路之前,我想研究一下不是“非常可怕”的解决方案。有什么建议么?
sql-server - tsql for XML 将值格式化为元素
我正在尝试将列中的值作为 XML 元素获取。是否可以在 sql server 中使用 For XML 来执行此操作?
我想从选择查询的单独行中获取以下内容。
这将帮助我转义值中的无效字符,以便它们可以正确地序列化为 XML。
是否可以从 FOR XML 查询中获得此返回?
sql-server - 需要特定的 XML 布局
我有下表:
内容如下:
当我想从此内容创建 XML 时,我使用
这让我回来了
但我需要但我无法返回的是
我需要将其编写为单独的 XML 文件,对于每个 stlh_num 都需要一个新文件。
这甚至可能吗?
sql-server - SQL Server SELECT FOR XML 如何获取同一级别的两个元素
我有两个不同的 XML 片段要放在一起。
例如,第一部分的 SQL 如下所示:
一旦执行,你会得到这个:
第二个在这里:
你会得到这个:
现在我将这两部分放在一起:
结果如下:
但我不想在那里有元素“aa”和“bb”。我很想得到这个:
但我不知道如何实现这一目标。
有什么提示吗?
sql-server - 选择for xml语句生成excel sheet数据格式
我正在尝试编写一个 sql 查询,该查询将以我可以转换为 excel 电子表格的格式生成 xml。所以原来的sql表包含以下数据
到目前为止,我设法生成的 sql 查询如下
这将产生以下 xml
所以我需要得到的是下面的xml格式
现在我已经求助于对第一个 xml 格式进行转换以获得所需的输出,但是我希望构建一个 sql 查询,我可以使用它来直接生成它,而无需进行额外的转换。谢谢你的帮助。
sql-server - FOR XML SQL Server - 输出 XML 中的变量元素名称
我对FOR XML
SQL Server 很陌生,我已经搜索了相当多的内容,但找不到答案。
我可以使用“for xml”来获得一个变量元素名称,其中元素名称不是硬编码的,而是取自每行中的一个单元格?举个例子……
表ORDERS
:
FOR XML
询问:
所需输出:
我知道我能够为元素名称提供属性,并且我可以提供如下所示的个人ORDER
和ORDERS
属性,STATUS
但不幸的是,这不是接收 XML 文档的人所寻找的:(
输出:
如果可能的话,我希望能够在 SQL Server 中完成所有这些工作。非常感谢,如果你能在这方面帮助我。
sql-server - 在 FOR XML 子句中对 XML 元素进行分组
我正在尝试从我的临时表创建一个结构 xml 文档。临时表采用以下格式。
我正在尝试以以下形式创建 xml 格式:
我尝试了上面的查询,但说子查询返回了超过 1 个值你能告诉我我在这个查询中缺少什么吗?有没有更好的方法来处理这种情况。
提前致谢
sql-server - 如何在 SQL Server 的 XML 投影中输出原始 xml,而不引入额外的 xml 根元素
给定以下尝试构造 XML 的 T-SQL 片段。
生成的 XML 是:
如何在没有UnwantedElement的情况下获得相同的输出,使其看起来像下面的示例。
sql-server - 使用for xml生成sql语句后如何去掉特殊字符
我已经生成了用于审计跟踪的插入语句for xml
,它生成了正确的插入语句。见下文是生成的内容。
这是Print @SQL
输出:
但是,当我尝试使用执行时,EXECUTE(@SQL)
我收到一条错误消息:
'&' 附近的语法不正确。
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>
任何人都可以解释其中的区别吗?