Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menggabungkan Nilai Dalam Kumpulan dalam Pelayan SQL?

Bagaimana untuk Menggabungkan Nilai Dalam Kumpulan dalam Pelayan SQL?

Mary-Kate Olsen
Lepaskan: 2025-01-09 12:36:48
asal
168 orang telah melayarinya

How to Concatenate Values Within Groups in SQL Server?

Sertai kumpulan dalam SQL Server

Untuk menyertai nilai dalam kumpulan dalam SQL Server 2005, pertimbangkan untuk menggunakan fungsi agregat yang ditentukan pengguna.

Penyelesaian:

  1. Buat fungsi agregat yang ditentukan pengguna (UDAF):

    <code class="language-sql"> CREATE AGGREGATE [dbo].[ConcatValues] (@str VARCHAR(MAX))
     RETURNS VARCHAR(MAX)
     AS
     BEGIN
         DECLARE @result VARCHAR(MAX) = '',
                 @delim VARCHAR(2) = '';
         WHILE @str IS NOT NULL
         BEGIN
             SET @result = @result + @delim + @str;
             SET @delim = ',';
             SET @str = NEXT VALUE;
         END;
         RETURN @result;
     END;</code>
    Salin selepas log masuk
  2. Gunakan UDAF dalam pertanyaan:

    <code class="language-sql"> SELECT Id, [dbo].[ConcatValues](Value) AS ConcatenatedValues
     FROM YourTable
     GROUP BY Id;</code>
    Salin selepas log masuk

Keputusan:

Id ConcatenatedValues
1 'A,B'
2 'C'

Perhatikan bahawa penyelesaian ini menggunakan gelung WHILE untuk mengulang nilai input dan menggabungkannya menggunakan koma sebagai pemisah. Ini berbeza daripada gelung FOR dalam contoh asal, tetapi melaksanakan fungsi yang sama dan lebih biasa dalam SQL Server. NEXT VALUE digunakan untuk mendapatkan nilai input seterusnya bagi fungsi agregat. YourTable hendaklah digantikan dengan nama jadual sebenar anda.

Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Nilai Dalam Kumpulan dalam Pelayan SQL?. 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