web-dev-qa-db-ja.com

2017年より前のSQLサーバーのstring_agg

誰でも私がこのクエリをSQLサーバー2014で機能させるのを手伝ってくれますか?これはPostgresqlで、おそらくSQLサーバー2017で動作しています。Oracleではstring_aggではなくlistaggです。

ここにSQLがあります:

select 
string_agg(t.id,',') AS id
from Tabel t

サイトでいくつかのxmlオプションを使用する必要があることを確認しましたが、理解できませんでした。

11
Master Yi

SQL Server 2017より前では、次のことができます。

_select stuff( (select ',' + cast(t.id as varchar(max))
               from tabel t
               for xml path ('')
              ), 1, 1, ''
            );
_

stuff()の唯一の目的は、最初のコンマを削除することです。作業は_for xml path_によって行われています。

10
Gordon Linoff