2014-02-07 30 views
2

所以我有以下表,@tmpRespTBL設置變量的值從行的合計值在SQL

enter image description here

某處在我的PROC,我有自己的變量@xmlString。我希望我的@xmlString的值是@tmpRespTBL表響應列中所有行的組合值。

我的輸出應該是:

@xmlString = '<x id="3" name="Good" val="0" seq="0" createsr="0" /><x id="4" name="Fair" val="0" seq="0" createsr="0" /><x id="5" name="Needs Repair" val="1" seq="0" createsr="0" /><x id="6" name="Not Inspected" val="1" seq="0" createsr="0" /><x id="7" name="N/A" val="1" seq="0" createsr="1" />' 

我怎麼做,在SQL?

感謝

回答

-1
SELECT @xmlString = COALESCE(@xmlString+',' , '') + CAST(Responses AS Varchar(max)) 
FROM tableName 
+0

您是否嘗試過這個地方在表中的列是XML數據類型? –

+0

@MikaelEriksson鑄造xml列到varchar應該工作? –

+0

試試吧,告訴我。不過,我認爲OP想要的結果是XML,而不是文本。您在XML部分之間添加了一個逗號,並且Q中的預期輸出中沒有這個逗號。如果您將其轉換爲某種類型,它應該可能是nvarchar,因爲SQL Server中的XML是Unicode。演員也不會像你想要的那樣使用像「&」和「<」這樣的XML實體。 –

1

你可以試試這個:

SELECT t.Responses as '*' 
FROM @tmpRespTBL AS t 
FOR XML PATH('') 
+0

我認爲它會以XML格式返回,但他已經有了xml格式 –