我有两个单独的表TV和Receiver,它们使用FOR XML PATH命令来构建XML。我的问题是,我想将TV XML Build的输出与Receiver
XML Build的输出结合起来以创建一个XML输出。
因此,我会有类似的内容(允许我在FilterData根目录中将电视标签和接收器标签分开):
<FilterData>
<TVs>
<TV>
<Type>LCD</Type>
<Brand>Samsung</Brand>
</TV>
<TV>
<Type>LCD</Type>
<Brand>Panasonic</Brand>
</TV>
</TVs>
<Receivers>
<Receiver>
<Type>Surround 7.1</Type>
<Brand>Onkyo</Brand>
</Receiver>
<Receiver>
<Type>Surround 7.1</Type>
<Brand>Denon</Brand>
</Receiver>
</Receivers>
</FilterData>
问题是当我构建查询以输出此XML时
Select
Type
,Brand
From dbo.TVs
FOR XML PATH('TV'),ROOT('TVS') TYPE
和
Select
Type
,Brand
From dbo.Receivers
FOR XML PATH('Receiver'),ROOT('Receivers') TYPE
我不确定如何将它们组合成示例:
<FilterData>
<TVs>
<TV>
<Type>LCD</Type>
<Brand>Samsung</Brand>
</TV>
<TV>
<Type>LCD</Type>
<Brand>Panasonic</Brand>
</TV>
</TVs>
<Receivers>
<Receiver>
<Type>Surround 7.1</Type>
<Brand>Onkyo</Brand>
</Receiver>
<Receiver>
<Type>Surround 7.1</Type>
<Brand>Denon</Brand>
</Receiver>
</Receivers>
使用:
SELECT (SELECT t.type, t.brand
FROM dbo.TVs t
FOR XML PATH('tv'), ROOT('tvs'), ELEMENTS, TYPE),
(SELECT r.type, r.brand
FROM dbo.Receivers r
FOR XML PATH('receiver'), ROOT('receivers'), ELEMENTS, TYPE)
FOR XML PATH('filterdata')
测试使用:
WITH tvs AS (
SELECT 'LCD' AS type, 'Samsung' AS brand
UNION ALL
SELECT 'LCD' AS type, 'Panasonic' AS brand),
receivers AS (
SELECT 'Surround 7.1' AS type, 'Onkyo' AS brand
UNION ALL
SELECT 'Surround 7.1', 'Denon')
SELECT (SELECT t.type, t.brand
FROM tvs t
FOR XML PATH('tv'), ROOT('tvs'), ELEMENTS, TYPE),
(SELECT r.type, r.brand
FROM receivers r
FOR XML PATH('receiver'), ROOT('receivers'), ELEMENTS, TYPE)
FOR XML PATH('filterdata')
问题内容: 我该如何选择: 请不要告诉我可以使用,因为它们实际上来自查询。 问题答案: 没有合并和语法,但是您可以使用,如下所示。 或在评论中使用您的示例
问题内容: 我有一个包含字段()的表()。我想从中选择每一行,以及表中该字段与相同的行数。 如何在SQL中完成? (像这样的伪SQL: ) 问题答案:
问题内容: 假设我的数据库中有以下两段XML 此数据使用数据类型存储在两个单独的表中,此外,此XML列链接到描述所需xml格式的模式,例如 在存储过程/函数中,我想将这两个XML结构合并为以下内容: 因此,从xml的第一部分开始,我们采取了以下措施: 从第二段xml中我们获得了以下内容: 注意,这两段XML有一个共同的项目,其关键是: 在这种情况下,应在合并的xml中使用xml 2中的值(丢弃xm
MS SQL 有许多用于处理数字数据或字符串的内置函数。下面给出的列表包含有用的 SQL 内置函数: SQL Server COUNT 函数 - SQL Server COUNT 聚合函数用于计算数据库表中的行数。 SQL Server Max 函数 - SQL 中的 Max Aggregate 函数允许我们选择列的最大值。 SQL Server Min 函数 - SQL 中的 Min Aggre
主要内容:CREATE INDEX命令,删除索引命令索引是数据库搜索引擎用来加速数据检索的唯一表格。索引是表中数据的一种指标。数据库中的索引与书末的索引相同。 例如,如果想参考书中讨论某个主题的所有页面,首先参考索引,索引一般是按字母顺序列出所有问题,然后应用于一个或多个页码。 索引选择可以帮助我们加快 where 子句出现时的查询速度,但它会减慢数据输入速度,并且包含更新和语句。不会对索引数据产生或删除任何影响。 创建索引包括一个 语句,该语句为
主要内容:COMMIT命令,ROLLBACK命令,SAVEPOINT命令,SET TRANSACTION命令事务是与数据库相反执行的工作单元,从数据库读取或写入数据库的任何事务。事务是对数据库的一项或多项更改的传播。 例如,如果我们创建记录、更新或删除表的历史记录,那么也应该创建事务。控制数据完整性的操作是必不可少的,它用于处理数据库的错误。我们向组中添加一些 SQL 查询并执行事务部分。 事务属性: 事务有四个属性,称为 ACID 属性 - 原子性 - 确保与工作单元的所有操作都成功完成; 否