0

ユニオンを実行して、さまざまなテーブルから 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')

したがって、ID、name/last、name/first、および extension を入力する 3 行のデータが必要になります。

一番のおすすめは何でしょう?

4

1 に答える 1

0

一時テーブルを作成し、入力して別の としてクエリに追加しますUNION ALLさまざまなタイプの一時テーブルがあります。これは、最も単純なタイプのテーブル変数を使用するコードです...

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')

Click here to see it in action at SQL Fiddle

于 2013-05-24T19:47:38.377 に答える