Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

perlu mendapatkan data yang dikelompokkan berdasarkan groupid

Coba gunakan konsep berikut:

Masukkan data:

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');

Jalankan kueri:

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

Hasil:

Perhatikan bahwa tanda koma tidak boleh mempengaruhi validitas data. Pengalaman saya dengan SQL Server terbatas, tetapi ini akan membantu Anda memulai ke arah yang dapat berhasil.

Biola:

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




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Memulihkan Database SQL Server di Mac menggunakan SQL Operations Studio

  2. Fungsi SQL group_concat di SQL Server

  3. Apakah mungkin menggunakan MS VS Database Project sebagai solusi lengkap untuk versi database?

  4. SQL Server:gunakan parameter di CREATE DATABASE

  5. Fungsi SUM Tidak Ditambahkan dengan Benar