Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengubah Data dengan Berbilang Lajur (org dan kedudukan) ke dalam Format Lebih Luas Menggunakan SQL?
Memindahkan Data menggunakan Berbilang Lajur
Pertanyaan pangsi adalah penting untuk menyusun semula data daripada format tinggi dan sempit kepada format lebar dan jadual. Dalam kes khusus ini, anda perlu memaksi data yang diwakili dalam format terpivot dengan dua lajur, iaitu org dan kedudukan, ke dalam format yang lebih luas dengan lajur berasingan untuk setiap bahasa (en, fi dan sv).
Sebagaimana yang anda nyatakan, pertanyaan pangsi dengan arahan CONNECT BY mungkin berguna. Walau bagaimanapun, berikut ialah pendekatan yang lebih mudah menggunakan operator PIVOT:
SELECT user_id, MAX(CASE WHEN lang = 'en' THEN org END) AS org_en, MAX(CASE WHEN lang = 'en' THEN position END) AS position_en, MAX(CASE WHEN lang = 'fi' THEN org END) AS org_fi, MAX(CASE WHEN lang = 'fi' THEN position END) AS position_fi, MAX(CASE WHEN lang = 'sv' THEN org END) AS org_sv, MAX(CASE WHEN lang = 'sv' THEN position END) AS position_sv FROM source GROUP BY user_id
Fungsi MAX() digunakan untuk mendapatkan nilai terkini yang dikaitkan dengan setiap ID pengguna dan gabungan bahasa. Sebagai alternatif, anda boleh menggunakan fungsi pengagregatan seperti SUM(), bergantung pada keperluan khusus anda.
Pertanyaan ini akan menjana output yang diingini:
user_id | org_fi | position_fi | org_en | position_en | org_sv | position_sv |
---|---|---|---|---|---|---|
1001 | USD | Bossa | USE | Boss | NULL | NULL |
1002 | NULL | NULL | NULL | NULL | GWR | Dim |
1003 | GGA | DCS | NULL | NULL | GCA | DDD |
Ingat untuk melaraskan fungsi MAX() dan ungkapan CASE berdasarkan data dan keperluan sebenar anda. Dengan pendekatan ini, anda boleh memutar data anda dengan berkesan menggunakan berbilang lajur, memberikan anda kefleksibelan untuk mewakilinya dalam format yang lebih sesuai dengan keperluan analisis dan pembentangan anda.
Atas ialah kandungan terperinci Bagaimana untuk Mengubah Data dengan Berbilang Lajur (org dan kedudukan) ke dalam Format Lebih Luas Menggunakan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!