1
我有以下腳本可以爲一個表生成XML。我需要稍微修改它,以便在一個XML查詢中從3個不同的表中提取它。我不知道如何修改它,以便它在1個查詢中完成。我應該創建一個存儲過程:用於來自不同表格的XML路徑。
SELECT
CAST(EmployeeNumber AS varchar(9)) AS [employee/id],
LastName AS [name/last],
FirstName AS [name/first],
'Employee' AS [persontype],
email AS email
FROM dbo.Employees AS sd
WHERE (IsActive = 'Y') FOR XML PATH('employees')
其他表:
dbo.Contractors
該查詢略有不同:
SELECT
CAST(EmployeeNumber AS varchar(9)) AS [employee/id],
LastName AS [name/last],
FirstName AS [name/first],
'Contractor' AS [persontype],
email AS email
FROM dbo.Employees AS sd
WHERE (IsActive = 'Y') FOR XML PATH('employees')
最後一個是:
dbo.Interns
SELECT
CAST(EmployeeNumber AS varchar(9)) AS [employee/id],
LastName AS [name/last],
FirstName AS [name/first],
'Intern' AS [persontype],
email AS email
FROM dbo.Employees AS sd
WHERE (IsActive = 'Y') FOR XML PATH('employees')
只有改變場就在這裏
+1:我建議使用'有更好的表現UNION ALL'('[persontype]'是每個UNION分支不同,所以應該沒有重複反正)和一些縮進以提高可讀性。 – RBarryYoung 2013-05-06 15:04:53
是的,你是對的性能,但這些查詢不能有重複,因爲第五行有明確的價值 – Pavel 2013-05-06 16:22:13
我認爲這將工作,我打算從不同的表,但沒有指定查詢中的表......這是星期一畢竟:) – user1366606 2013-05-06 17:24:49