sql >> データベース >  >> RDS >> Sqlserver

SQLクエリ-結果を1つの文字列に連結する

    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によって提案された、それらの文字に対しても機能するソリューションを確認する必要があります。 警告の一言 私から:このアプローチははるかに リソースと処理が集中します-ご存知のとおりです。



    1. トップ5のMySQL監視ツール

    2. SQL更新は、更新の実行中にサブクエリに影響しますか?

    3. SQL Serverデータベース(T-SQL)にファイルグループを追加する方法

    4. AndroidでSQLCipherを使用する