MS SQL Server 2008 と Visual Studio の Express バージョンしか持っていません。SQL Serverプロジェクトを作成できないため、CLRソリューションは問題外であるため、使用しようとしました
select col1, stuff( ( select ' ' + col2
from StrConcat t1
where t2.col1 = t1.col1
for xml path('')
),1,1,'')
from StrConcat t2
group by col1
order by col1
col2 を連結した行を取得します。col2 は、 &や\nなどの制御文字を含む varchar フィールドです。上記の SQL と連結すると、それらの制御文字をエスケープするように見えます。&になります & ; \nは &#xOD になりますが、これは私がやりたいことではありません。col1 と連結されたフィールドが別のテーブルを更新するために使用されることを考えると、連結されたフィールドをエスケープされていない元の形式で取得する最良の方法は何ですか?それとも何もなく、外部コードに頼るしかありませんか?
テーブル スキーマは次のようになります: StrConcat (id int primary key, col1 int, txt varchar(80)) col1 にはインデックスがあり、txt は col1 でグループ化され、グループ内で ID 順に並べられる必要があります。