Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menggabungkan Nilai Baris dengan Cekap dalam Pelayan SQL Tanpa LISTAGG?
Menggabungkan Nilai Baris dalam Pelayan SQL: Alternatif kepada LISTAGG
Salah satu cabaran biasa dalam SQL ialah mengagregatkan nilai rentetan merentas baris. Dalam konteks ini, LISTAGG ialah fungsi mudah yang disokong oleh banyak sistem pangkalan data. Walau bagaimanapun, dalam SQL Server, tiada persamaan langsung dengan LISTAGG.
Untuk mencapai kefungsian serupa dalam SQL Server, satu pendekatan ialah menggunakan subkueri dalam pertanyaan utama. Walau bagaimanapun, pendekatan tradisional yang ditunjukkan di bawah mempunyai potensi kelemahan:
SELECT *, (SELECT AGG(CarModel) FROM CarModels model WHERE model.CarMakeID = make.CarMakeID GROUP BY make.CarMakeID) as CarMakes FROM CarMakes make
Dalam pertanyaan ini, AGG boleh digantikan dengan gabungan fungsi STRING_AGG dan GROUP_CONCAT:
SELECT *, (SELECT STRING_AGG(CarModel, ', ') FROM CarModels model WHERE model.CarMakeID = make.CarMakeID GROUP BY make.CarMakeID) as CarMakes FROM CarMakes make
Pertanyaan yang diubah suai ini menyediakan penyelesaian yang mantap untuk menggabungkan nilai baris dalam SQL Server. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa ciri prestasi pendekatan ini boleh berbeza-beza bergantung pada saiz dan kerumitan set data.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggabungkan Nilai Baris dengan Cekap dalam Pelayan SQL Tanpa LISTAGG?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!