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

SQL Server Gabungkan GROUP OLEH

Jika Anda menggunakan sql server 2005+. Kemudian Anda dapat melakukan seperti ini:

SELECT 
    JobsTagMap.JobID,
    STUFF
    (
        (
            SELECT 
                ',' +Title
            FROM
                Tags
            WHERE
                Tags.TagID=JobsTagMap.TagID
            FOR XML PATH('')
        )
    ,1,1,'') AS Title
FROM JobsTagMap

EDIT

Karena Anda tidak menunjukkan kepada kami struktur tabel dan data dalam tabel yang berbeda. Itu agak sulit untuk diketahui. Jadi saya berasumsi bahwa struktur tabel Anda terlihat seperti ini:

CREATE TABLE JobsTagMap
(
    JobID INT,
    TagID INT
)

CREATE TABLE Tags
(
    TagID INT,
    Title VARCHAR(100)
)

Dengan data ini:

INSERT INTO JobsTagMap
VALUES(1,1),(1,2),(2,2),(2,4),(2,5)

INSERT INTO Tags
VALUES(1,'Tag1'),(2,'Tag2'),(3,'Tag2'),(4,'Tag5'),(5,'Tag9')

Jika Anda mendapatkan data itu, Anda menunjukkan JobID tidak boleh unik. Anda mungkin memiliki Job meja di suatu tempat di mana itu unik. Jika Anda hanya ingin menggunakan tabel yang Anda tampilkan ini, Anda perlu melakukan sesuatu seperti ini:

;WITH CTE
AS
(
    SELECT
        ROW_NUMBER() OVER(PARTITION BY JobID ORDER BY JobID) AS RowNbr,
        JobsTagMap.*
    FROM
        JobsTagMap
)
SELECT
    *,
    STUFF
    (
        (
            SELECT 
                ',' +Title
            FROM
                Tags
                JOIN JobsTagMap
                    ON Tags.TagID=JobsTagMap.TagID
            WHERE
                JobsTagMap.JobID=CTE.JobID
            FOR XML PATH('')
        )
    ,1,1,'') AS Title
FROM
    CTE
WHERE
    CTE.RowNbr=1

Ini akan memberi Anda hasil ini:

1   1   1   Tag1,Tag2
1   2   2   Tag2,Tag5,Tag9

Jadi di masa depan selalu tampilkan struktur tabel dan itu data . Itu akan memberi Anda jawaban yang lebih baik



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lihat Riwayat Pekerjaan Agen SQL Server dengan Azure Data Studio

  2. Apa itu Skema di SQL Server dan Cara Membuat/Menjatuhkan Skema di Database SQL Server - Tutorial SQL Server / TSQL Part 27

  3. Mengatasi batas kolom maksimum SQL Server 1024 dan ukuran catatan 8kb

  4. Bagaimana Anda membuat pencarian teks lengkap wildcard terkemuka berfungsi di SQL Server?

  5. Menemukan urutan simpul dalam dokumen XML di SQL Server