5

次のクエリはうまく機能します。すべてのIDをコンマ区切りのリストに入れます。

DECLARE @tmp nvarchar(max)
SET @tmp = ''
        SELECT  @tmp = @tmp + cast(id as nvarchar(max)) + ', ' 
        FROM    dbo.property

ID をアルファベット順に並べたいのですが、p.Name で順序を追加すると、一番上の結果しか得られません。

これを達成するためにクエリをどのように適応させることができますか?

4

2 に答える 2

5

これは本当にうまくいきませんか?

DECLARE @tmp nvarchar(max);
SET @tmp = '';
SELECT  @tmp = @tmp + cast(id as nvarchar(max)) + ', ' 
FROM    dbo.property p
order by p.name;

いずれにせよ、次の方法を使用できます。

select @tmp = stuff((select ', ', cast(id as nvarchar(max))
                     from db.property p
                     order by p.name
                     for xml path ('')
                    ), 1, 2, '');
于 2013-08-29T11:49:48.363 に答える
2

ソリューション:

    SELECT  (cast(ID as nvarchar(max)) + ', ')  AS [text()]
      FROM    dbo.property
  ORDER BY ID
    FOR XML PATH ('')
于 2013-08-29T11:58:58.680 に答える