3

以前に非常によく似た質問をしましたが、今は同じ結果が必要ですが、入力が異なります。

サンプルコード:

CREATE TABLE #Temp (
    [@name] VARCHAR(200),
    [Value] VARCHAR(200)
)

INSERT INTO #Temp ([@name], [Value]) 
SELECT 'Fruit', 'Apple' UNION
SELECT 'Fruit', 'Orange' UNION
SELECT 'Fruit', 'Grape'

ステートメントを選択

SELECT
    [@name],
    [Value]
FROM #Temp
FOR XML PATH ('Produce'), ROOT('ProduceMaster'), TYPE

結果

<ProduceMaster>
  <Produce name="Fruit">
    <Value>Apple</Value>
  </Produce>
  <Produce name="Fruit">
    <Value>Grape</Value>
  </Produce>
  <Produce name="Fruit">
    <Value>Orange</Value>
  </Produce>
</ProduceMaster>

望ましい結果

<ProduceMaster>
  <Produce name="Fruit">
    <Value>Apple</Value>
    <Value>Grape</Value>
    <Value>Orange</Value>
  </Produce>
</ProduceMaster>
4

1 に答える 1

5
CREATE TABLE #Temp (
    [@name] VARCHAR(200),
    [Value] VARCHAR(200)
)

INSERT INTO #Temp ([@name], [Value]) 
SELECT 'Fruit', 'Apple' UNION
SELECT 'Fruit', 'Orange' UNION
SELECT 'Fruit', 'Grape' UNION
SELECT 'Building', 'house'


Select  [@Name],
(
SELECT    
    [Value]
FROM #Temp t2
where t2.[@Name] = t1.[@Name]
FOR XML  PATH (''), TYPE
) FROM #Temp t1 GROUP by [@Name]
FOR XML PATH ('Produce'), ROOT('ProduceMaster'), TYPE
于 2013-07-19T20:26:16.970 に答える