SQL Server 2005以降を使用している場合は、この FOR XML PATH&STUFF
を使用できます。 トリック:
DECLARE @CodeNameString varchar(100)
SELECT
@CodeNameString = STUFF( (SELECT ',' + CodeName
FROM dbo.AccountCodes
ORDER BY Sort
FOR XML PATH('')),
1, 1, '')
FOR XML PATH('')
基本的に、文字列を1つの長いXML結果(、code1、code2、code3
など)に連結します。 など)および STUFF
最初の文字に「何もない」文字を配置します。例: 「余分な」最初のコンマを消去して、おそらく探している結果を提供します。
更新: OK-コメントを理解しました-データベーステーブルのテキストにすでに<
のような文字が含まれている場合 、>コード> または
&
、次に現在のソリューション 実際、それらを&lt;
にエンコードします 、&gt;
、および&amp;
。
そのXMLエンコーディングに問題がある場合は、そうです。@ KMによって提案された、それらの文字に対しても機能するソリューションを確認する必要があります。 警告の一言 私から:このアプローチははるかに リソースと処理が集中します-ご存知のとおりです。