我知道如何进行联合并从不同的表中吐出XML文件,但是,我需要创建一个临时表来容纳我需要成为XML文件一部分的3条记录。结构与其他表格完全相同。
我将如何做到这一点?
select * from
(
select ID_Number as [ID], CLAST as [name/last], CFIRST as [name/first], '' as extension]
from dbo.users as a
union all
select PID as [ID], NID as [name/last], NAME as [name/first], PREF_TITLE as [extension]
from dbo.Person
) as a
FOR XML PATH('employee'), ROOT('employees')
所以我需要3行数据,这些数据将填充ID,姓名/姓氏,名字/名字和扩展名。
什么是最好的推荐?
答案 0 :(得分:0)
创建临时表,填充它并将其作为另一个UNION ALL
添加到查询中。有different types of temporary table,这里有一些使用表变量的代码,最简单的类型......
DECLARE @tempTable TABLE
(
ID int,
Surname varchar(30),
FirstName varchar(30),
Title varchar(30)
)
INSERT @tempTable VALUES (7, 'Siobhan', 'Green', 'Ms')
INSERT @tempTable VALUES (8, 'Paul', 'Jones', 'Mr')
INSERT @tempTable VALUES (9, 'Sam', 'Morrison', 'Mrs')
SELECT * FROM
(
SELECT ID_Number as [ID], CLAST as [name/last], CFIRST as [name/first], '' as [extension]
FROM users as a
UNION ALL
SELECT PID, NID, NAME, PREF_TITLE
FROM Person
UNION ALL
SELECT ID, Surname, FirstName, Title
FROM @tempTable
) as a
FOR XML PATH('employee'), ROOT('employees')