Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menggabungkan Medan daripada Berbilang Rekod T-SQL ke dalam Rentetan Dipisahkan Koma?

Bagaimana untuk Menggabungkan Medan daripada Berbilang Rekod T-SQL ke dalam Rentetan Dipisahkan Koma?

Barbara Streisand
Lepaskan: 2025-01-15 08:21:43
asal
640 orang telah melayarinya

How to Concatenate Fields from Multiple T-SQL Records into a Comma-Separated String?

Kumpulkan medan berbilang rekod mengikut medan lain dalam T-SQL

Artikel ini akan meneroka teknik untuk mengumpulkan nilai medan yang dikaitkan dengan berbilang rekod dalam dua jadual. Dengan menggabungkan data daripada jadual Ulasan, Penyemak dan Pengguna, kami boleh menggabungkan medan FName menjadi rentetan yang dipisahkan koma.

<code class="language-sql">-- 示例数据
DECLARE @Reviews TABLE(
        ReviewID INT,
        ReviewDate DATETIME
)

DECLARE @Reviewers TABLE(
        ReviewerID   INT,
        ReviewID   INT,
        UserID INT
)

DECLARE @Users TABLE(
        UserID  INT,
        FName  VARCHAR(50),
        LName VARCHAR(50)
)

INSERT INTO @Reviews SELECT 1, '12 Jan 2009'
INSERT INTO @Reviews SELECT 2, '25 Jan 2009'

INSERT INTO @Users SELECT 1, 'Bob', ''
INSERT INTO @Users SELECT 2, 'Joe', ''
INSERT INTO @Users SELECT 3, 'Frank', ''
INSERT INTO @Users SELECT 4, 'Sue', ''
INSERT INTO @Users SELECT 5, 'Alice', ''

INSERT INTO @Reviewers SELECT 1, 1, 1
INSERT INTO @Reviewers SELECT 2, 1, 2
INSERT INTO @Reviewers SELECT 3, 1, 3
INSERT INTO @Reviewers SELECT 4, 2, 4
INSERT INTO @Reviewers SELECT 5, 2, 5</code>
Salin selepas log masuk

Penyelesaian menggunakan SELECT bersarang dan FOR XML PATH()

Menggunakan operator FOR XML PATH(), kita boleh menggabungkan nilai FName ​​ke dalam satu rentetan:

<code class="language-sql">SELECT  *,
        ( 
            SELECT  u.FName + ','
            FROM    @Users u INNER JOIN 
                    @Reviewers rs ON u.UserID = rs.UserID
            WHERE   rs.ReviewID = r.ReviewID
            FOR XML PATH('')
        ) AS UserNames
FROM    @Reviews r</code>
Salin selepas log masuk

Pertanyaan ini mengembalikan hasil berikut:

<code>ReviewID  ReviewDate  UserNames
1          12 Jan 2009  Bob,Joe,Frank
2          25 Jan 2009  Sue,Alice</code>
Salin selepas log masuk

Kesimpulan

Menggunakan fungsi FOR XML PATH(), kami berjaya mengumpulkan nilai medan berbilang rekod dalam jadual berbeza mengikut medan biasa. Teknik ini boleh digunakan pada senario di mana perwakilan rentetan bercantum diperlukan.

Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Medan daripada Berbilang Rekod T-SQL ke dalam Rentetan Dipisahkan Koma?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan