0

私の問題は簡単です:

テーブルの出力を変換しようとし続けます

1 a
1 b     into    1 a b c
1 c

2 d
2 e     into    2 d e f
2 f

テーブルには常に 3 行のセットがあり、上記のように 4 列のテーブルになります。

ループしようとしたら行き詰まりました…</p>

編集: SQL_SERVER 用です

4

2 に答える 2

0

MY_SQL の場合

SELECT A, group_concat(B SEPARATOR " ") as BResult
FROM TABLE
GROUP BY A
  • ORACLE の場合、B の順序が重要な場合は、List_Agg または WM_CONCAT を参照してください。
  • SQL SERVER については、XML パスを参照してください。

ただし、単に行を列に変換しようとしている場合...

dbms がサポートしている場合は、cte を使用できます。ピボットを見ることができます。rdbms がサポートしている場合。

于 2013-07-01T15:47:20.373 に答える
0

コンストラクトを使用して、次のようFOR XML PATHに MySQL をエミュレートできます。GROUP_CONCAT

select 
    ID, 
    stuff((select ' ' + Value 
           from YourTable t2 where t1.ID = t2.ID 
           for xml path('')),
          1,2,'') [Values]
from YourTable t1
group by ID

このトピックに関するその他の回答:

于 2013-07-01T15:53:00.880 に答える