4

私は MS-SQL を使用しており、次のようなテーブルがあります。

Count  Code
1      A
2      C
3      A
4      B
5      C
6      B

コード列の個別の行を取得するだけで済みますが、列の順序を維持して、次のようなカンマ区切りの文字列を作成する必要があります。

    A, C, B

メッセージ 145、レベル 15 の SQL エラーが発生しないように、次のコードを試しました。

SELECT @tlist = ISNULL(@tlist+', ','') + Code 
FROM (SELECT DISTINCT t.Code  
     FROM @Table t) 

しかし、A、B、Cの出力が得られます

4

2 に答える 2

4

だから、あなたはしたくありませんdistinct。あなたがしたいgroup by

select t.code
from @Table t
group by t.code
order by min(count)

select句に記載されていない列で並べ替えることができます。

コンマ区切りのリストを単一の変数として取得するには、次の手法を使用します。

select stuff((select ', '+t.code
              from @Table t
              group by t.code
              order by min(count)
              for xml path ('')
             ), 1, 2, '')

Order byサブクエリ内の は通常未定義です。また、リストを順番に連結する方法が機能することは保証されていません。

于 2012-10-25T15:20:37.990 に答える
3

サブクエリでそれらを注文する

SELECT DISTINCT t.Code  
FROM @Table t
ORDER BY t.Code
于 2012-10-25T15:10:06.680 に答える