Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menggabungkan Berbilang Baris ke dalam Lajur Tunggal dengan Nilai Dipisahkan Koma Menggunakan T-SQL?

Bagaimanakah Saya Boleh Menggabungkan Berbilang Baris ke dalam Lajur Tunggal dengan Nilai Dipisahkan Koma Menggunakan T-SQL?

Patricia Arquette
Patricia Arquetteasal
2025-01-12 09:53:43837semak imbas

How Can I Combine Multiple Rows into a Single Column with Comma-Separated Values Using T-SQL?

Mengembalikan berbilang nilai dalam satu lajur dalam T-SQL

Mendapatkan berbilang nilai daripada baris yang berbeza dan menggabungkannya ke dalam satu lajur adalah tugas biasa dalam persekitaran SQL Server. Ini amat berguna dalam senario seperti mendapatkan semula semua alias yang dikaitkan dengan pengguna tertentu.

Untuk mencapai ini dengan cekap, pertimbangkan untuk menggunakan fungsi tersuai yang menggunakan fungsi COALESCE. Pendekatan ini membolehkan anda menyatukan nilai yang diambil secara berperingkat ke dalam satu rentetan, akhirnya memberikan output yang diingini.

Berikut ialah contoh fungsi yang dipanggil GetAliasesById:

<code class="language-sql">CREATE FUNCTION [dbo].[GetAliasesById]
(
    @userID int
)
RETURNS varchar(max)
AS
BEGIN
    declare @output varchar(max)
    select @output = COALESCE(@output + ', ', '') + alias
    from UserAliases
    where userid = @userID

    return @output
END</code>

Selepas mentakrifkan fungsi ini, anda boleh menyepadukannya ke dalam pertanyaan anda untuk mendapatkan output yang diingini:

<code class="language-sql">SELECT UserID, dbo.GetAliasesByID(UserID)
FROM UserAliases
GROUP BY UserID</code>

Pertanyaan ini akan mengembalikan jadual dengan dua lajur: UserID dan Alias. Lajur Alias ​​akan mengandungi senarai yang dipisahkan koma bagi semua alias yang dikaitkan dengan setiap pengguna, memenuhi keperluan yang ditentukan untuk mengembalikan berbilang nilai dalam satu lajur.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggabungkan Berbilang Baris ke dalam Lajur Tunggal dengan Nilai Dipisahkan Koma Menggunakan T-SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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