问题标签 [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 回答
3251 浏览

sql-server - TSQL for xml path - 即使子查询为空,我如何包含子查询容器元素?

我构建 XML 的查询包括子查询。子记录应该进入容器元素。即使没有子记录,XML 也必须具有容器元素。

考虑以下。<Patients>即使没有子记录或验证失败,容器元素也必须存在。

我尝试了几种不同的方法FOR XML PATH

上述方法将<Patients>元素完全排除在空集之外。

下面的一个包含标签但添加了xsi:nil="true"属性,这也会导致验证失败。

有没有办法强制容器元素存在?

0 投票
7 回答
86933 浏览

sql-server - 替换“<” 和“>” 在sql server中使用“<”和“>”

嗨,我是 xml 新手

我有这样的查询

它将xml返回为

项目标签以 < 和 > 的形式显示。但是 Location 的内部标签显示为“<” 和“>” 如何用 < 和 > 替换它们

更新:问题中有一个小错误。内部 xml 不是用于 rtoid ,而是用于 Location

我将查询更新为

但还是一样

0 投票
1 回答
4347 浏览

sql-server-2008 - 在不包含在选择中的 xml 路径中使用不同的内部

顶部查询在一个表中查找每个语句只有一条记录,因此如果客户有 7 条语句,则行数应为 7,查询将列出它们,如下所示 1,2,3,4,5,6 ,7

底部查询在一个表中查找,该表将包含上述 7 个语句,但通常它们会被拆分,因此如果每个语句有 2 行,则将有 14 行,即 1、1、2、2, 3,3,4,4,5,5,6,6,7,7

现在,我想要实现的是以下内容,顶部查询很好,但是底部查询需要区分。查看底部图像上的结果编号 2,我希望它返回为 1、2、3、4、5、6、7、8、9、10。

如果有一个特定的例子,语句分别上升到 8 和 4,我想要 1、2、3、4、5、6、7、8。基本上它是在大多数情况下复制底部查询的语句编号,我希望它只是对整个结果做一个不同的occross,但是我尝试放入一个不同的,它抱怨按项目排序必须包含在选择中如果声明包含在不同的内容中,这会破坏我的查询。

这两个查询的最终目的是将顶部结果集与底部结果集进行比较,并只带回不匹配的结果集(因为这意味着我在顶部查询表中缺少一条语句)

在此处输入图像描述

0 投票
1 回答
1528 浏览

sql-server - 使用 FOR XML PATH 在 XML 中插入 SQL 查询的内容

我编写了一个存储过程,它返回包含一些生成的 SQL 查询的 nvarchar 变量,以及第二个过程,它使用 FOR XML PATH 生成 XML。我想修改生成 XML 的过程,并将生成的查询的内容从第一个过程添加到生成的 XML 中。

我生成 XML 的过程的一部分:

我不能简单地将查询的内容放入 XML,因为它包含一些特殊字符,如“<”、“>”,并且它们正在引入/结束 xml 标记。所以我认为将查询命令放入 XML 注释将解决我的问题。

我试过这个:

它没有帮助,我得到了错误:

消息 102,级别 15,状态 1,第 3 行
'<' 附近的语法不正确。
Msg 137, Level 15, State 1, Line 4
必须声明标量变量“@xml”。
Msg 137, Level 15, State 2, Line 216
必须声明标量变量“@xml”。
消息 156,级别 15,状态 1,第 217 行
关键字“FOR”附近的语法不正确。
Msg 137, Level 15, State 1, Line 219
必须声明标量变量“@xml”。
Msg 137, Level 15, State 2, Line 416
必须声明标量变量“@xml”。
消息 156,级别 15,状态 1,第 417 行
关键字“FOR”附近的语法不正确。
消息 137,级别 15,状态 1,

消息 137,级别 15,状态 2,行 540
必须声明标量变量“@xml”。

我也试过这个:

它也没有帮助。

我收到的错误消息:

消息 102,级别 15,状态 1,第 3 行
'<' 附近的语法不正确。
Msg 103, Level 15, State 4, Line 3
以 CDATA[DECLARE @xml xml SELECT TOP 1 @xml = x FROM iksemel ORDER BY id INSERT INTO ARTYKUL_TEST(ID_ARTYKULU,ID_MAGAZYNU' 开头的标识符太长。最大长度为 128 .
Msg 105, Level 15, State 1, Line 541
字符串')'后面的非闭合引号。

请帮忙

0 投票
1 回答
93 浏览

sql-server - 如何更改使用 FOR XML PATH 生成的动态 SQL 字段名称字符串以包含别名?

我有一个字符串变量,其中包含一个动态列标题列表,如下所示:

这可以很好地工作,并产生如下字符串:

但是请注意,只有第一个字段 ( ITEM_CMDT_N) 包含别名。如果我尝试将类似的代码添加到第二个字段的别名,它看起来像这样:

并产生这样的字符串:

这显然不是我的目标。如何'valv.ITEM_CMDT_N + ' - Date'在仍然使用 FOR XML PATH 代码的同时调整此字符串初始化以包含字段的别名?谢谢!

0 投票
1 回答
271 浏览

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

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

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

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

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

0 投票
1 回答
38 浏览

tsql - 防止在 XML 中出现行

我有以下表格和内容:

由此我需要创建以下 XML 布局:

我试图通过以下语句来实现这一点,这给了我太多的行和重复:

谁能帮我这个?顺便说一句,我正在使用 SQL Server 2008。这将不胜感激。

最好的问候,韦斯

0 投票
1 回答
966 浏览

sql-server - SQL SERVER 中的 XML PATH 值

我正在使用 XML PATH 绑定多值列,查询工作正常,但结果是 xml 格式,我想将其转换为简单文本这是查询

“项目”字段的结果就像

但我希望它像 cake,soap

0 投票
1 回答
1385 浏览

php - MSSQL xml path() 查询在 PHP 中不起作用

以下查询在 Microsoft SQL Server Management Studio 中执行时工作正常,但是当我通过 php 运行查询时,我没有得到任何输出(mssql_query() 之后的任何内容都不会呈现)。

如果我for xml path('')从 SQL 查询中删除并再次在 php 中运行,那么现在 mssql_query() 之后的所有内容都会被渲染)。

有谁知道 xml path('') 和 PHP 的任何问题,或者我是否做错了什么。

PHP

请注意:永远不会呈现以下或死错误。

0 投票
1 回答
150 浏览

sql - 为什么 STUFF 和 FOR XML PATH 不集中?

我有这两张桌子

现在当运行这个查询时,我得到

但我应该得到:

我不明白我做错了什么。