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

FOR XML を使用した行連結ですが、複数の列がありますか?

    このようなことができます。 XML 値を文字列にすぐに送信する代わりに、このクエリは TYPE キーワードを使用して、クエリ可能な xml タイプ オブジェクトを返します。 3 つのクエリ関数は、xml オブジェクトで Somefield 要素のすべてのインスタンスを検索し、それらの値だけを含む新しい xml オブジェクトを返します。次に、値関数は値を囲む xml タグを取り除き、それらを varchar(max) に渡します

    SELECT  ThisTable.ID
           ,[A].query('/Somefield').value('/', 'varchar(max)') AS [SomeField_Combined]
           ,[A].query('/Somefield2').value('/', 'varchar(max)') AS [SomeField2_Combined]
           ,[A].query('/Somefield3').value('/', 'varchar(max)') AS [SomeField3_Combined]
    FROM    ThisTable
            OUTER APPLY (
                         SELECT (
                                 SELECT SomeField + ' ' AS [SomeField]
                                       ,SomeField2 + ' ' AS [SomeField2]
                                       ,SomeField3 + ' ' AS [SomeField3]
                                 FROM   SomeTable
                                 WHERE  SomeTable.ID = ThisTable.ID
                                FOR
                                 XML PATH('')
                                    ,TYPE
                                ) AS [A]
                        ) [A]
    


    1. Postgresの合計を使用した再帰クエリ

    2. SQL Server 2008でPDF、Docx、xlsなどのドキュメントを保存する方法

    3. 状態のある多くの行を反復/処理するPostgreSQL関数

    4. pgAdminの代替-PostgreSQLデータベース管理GUIClusterControl