Soalan:
Bayangkan senario di mana anda mempunyai jadual pangkalan data dengan lajur FK , Medan1 dan Medan2. Jadual terdiri daripada data seperti berikut:
FK | Field1 | Field2 |
---|---|---|
3 | ABC | NULL |
3 | NULL | DEF |
Anda menyasarkan untuk melaksanakan pertanyaan yang menggabungkan dua baris ini menjadi satu, menghasilkan output berikut:
FK | Field1 | Field2 |
---|---|---|
3 | ABC | DEF |
Jawapan:
Fungsi agregat, seperti MAX, boleh digunakan untuk mencapai data ini penggabungan. Mereka sememangnya mengabaikan nilai NULL pada platform seperti SQL Server, Oracle dan Jet/Access. Berikut ialah contoh pertanyaan yang menggunakan fungsi MAX:
SELECT FK, MAX(Field1) AS Field1, MAX(Field2) AS Field2 FROM table1 GROUP BY FK;
Dalam pertanyaan ini, kami mengumpulkan baris mengikut lajur FK dan menggunakan fungsi MAX untuk mendapatkan nilai maksimum bagi setiap lajur yang lain (Field1 dan Padang2). Memandangkan nilai NULL diabaikan, nilai bukan NULL (ABC dan DEF) dikembalikan dalam baris gabungan.
Berikut ialah contoh dengan data ujian:
CREATE TABLE table1 (FK int, Field1 varchar(10), Field2 varchar(10)); INSERT INTO table1 VALUES (3, 'ABC', NULL); INSERT INTO table1 VALUES (3, NULL, 'DEF'); INSERT INTO table1 VALUES (4, 'GHI', NULL); INSERT INTO table1 VALUES (4, 'JKL', 'MNO'); INSERT INTO table1 VALUES (4, NULL, 'PQR');
Apabila pertanyaan dilaksanakan pada data ujian ini, ia menghasilkan output berikut:
FK Field1 Field2 -- ------ ------ 3 ABC DEF 4 JKL PQR
Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Baris dengan Nilai NULL dalam SQL Menggunakan Fungsi Agregat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!