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

groupid でグループ化されたデータを取得する必要がある

    次の概念を使用してみてください:

    データを挿入:

    CREATE TABLE some_table (some_data VARCHAR(20), some_other_data VARCHAR(20), groupId VARCHAR(20));
    INSERT INTO some_table (some_data, some_other_data, groupId) values ('a', '1', 'id1');
    INSERT INTO some_table (some_data, some_other_data, groupId) values ('b', '2', 'id1');
    INSERT INTO some_table (some_data, some_other_data, groupId) values ('c', '3', 'id2');
    

    クエリを実行します:

    SELECT '{"' + t.groupId + '": [{' + STUFF(
              (
                SELECT '{ "some_data":"' + td.some_data + '"', ', "some_other_data":' + td.some_other_data + '},'
                FROM some_table td
                WHERE t.groupId = td.groupId
                FOR XML PATH(''), TYPE
              ).value('.', 'NVARCHAR(MAX)'), 1, 1, '') + ']}'
    FROM some_table t
    GROUP BY t.groupId
    

    結果:

    末尾のコンマがデータの有効性に影響を与えないように注意してください。私の SQL Server の経験は限られていますが、これにより、うまくいく方向に進むことができるはずです。

    フィドル:

    http://sqlfiddle.com/#!6/66b19/35




    1. SQLから列コメントを取得する方法

    2. データベースの作成時にMySQL/書き込みファイルエラー(エラーコード28)

    3. Class.forName(com.mysql.jdbc.Driver)は、クラスのjarファイルを検索していません

    4. エラー:ハッシュできないタイプ:'dict'