Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mendapatkan Berbilang Nilai daripada Satu Lajur dalam Pelayan SQL Menggunakan T-SQL?
Teknik T-SQL untuk Mendapatkan Berbilang Nilai daripada Satu Lajur
Dalam pengurusan pangkalan data SQL Server, mendapatkan semula berbilang nilai yang dikaitkan dengan satu rekod adalah tugas biasa. Ini selalunya melibatkan jadual dengan perhubungan satu dengan banyak, di mana pengecam tunggal dipautkan kepada berbilang nilai berkaitan. Artikel ini menunjukkan kaedah yang teguh menggunakan fungsi T-SQL dan manipulasi rentetan.
Pertimbangkan jadual UserAliases
di mana setiap pengguna boleh mempunyai beberapa alias. Cabarannya terletak pada mendapatkan semula semua alias untuk pengguna tertentu ke dalam satu lajur. Ini boleh diselesaikan dengan elegan dengan menggabungkan fungsi COALESCE
dengan fungsi yang ditentukan pengguna.
Kod T-SQL berikut menggambarkan penyelesaian ini:
<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; GO SELECT UserID, dbo.GetAliasesByID(UserID) AS Aliases FROM UserAliases GROUP BY UserID; GO</code>
Fungsi GetAliasesById
mengambil userID
sebagai input dan mengembalikan rentetan yang dipisahkan koma bagi semua alias yang berkaitan. COALESCE
mengendalikan potensi nilai nol, memastikan output diformat dengan betul. Kenyataan SELECT
utama kemudian memanggil fungsi ini untuk setiap pengguna, menghasilkan satu lajur yang mengandungi semua alias untuk setiap ID pengguna.
Pendekatan ini menyediakan cara yang ringkas dan cekap untuk mengurus dan memaparkan berbilang nilai yang dipautkan kepada satu entiti, memudahkan pengendalian data dalam aplikasi T-SQL anda.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Berbilang Nilai daripada Satu Lajur dalam Pelayan SQL Menggunakan T-SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!