Bagaimanakah saya boleh mencipta pertanyaan SQL yang menggunakan Kol A sebagai kunci isihan utama, tetapi jika Kol A kosong, gunakan Kol B sebagai kunci isihan utama?
P粉052724364
P粉052724364 2023-09-15 22:59:52
0
1
651

Menggunakan MariaDB, saya mempunyai pandangan yang memberikan maklumat termasuk tarikh acara dan sama ada jemputan itu diterima. Medan eventdate 是类型为 date 的事件日期。 accepted 是类型为 tinyint ialah 0 jika jemputan ditolak, 1 jika jemputan diterima, jika tidak, ia lalai kepada NULL.

Saya ingin membangunkan pertanyaan yang mengisih mengikut diterima dan eventdate supaya nilai acceptedeventdate 排序,这样我的NULL值将出现在eventdate顺序的最前面。然而,如果accepted不为NULL,则希望按照eventdateNULL

saya akan muncul dahulu dalam susunan eventdate. Walau bagaimanapun, jika diterima bukan

NULL

, anda mahu mengisih mengikut eventdate.

从邀请视图中选择* ORDER BY已接受,eventdatePertanyaan semasa saya ialah:

accepted = NULL Walau bagaimanapun, pertanyaan ini mengisih jadual supaya semua ​​nilai berada di hadapan, semua 0

nilai berada di penghujung, dan akhirnya semua

1

nilai berada di penghujung, seperti ini:

eventname | eventdate  | accepted
---------------------------------
Event 1   | 2022-04-14 | NULL
Event 2   | 2022-04-25 | NULL
Event 3   | 2022-03-28 | 0
Event 4   | 2022-05-03 | 0
Event 5   | 2022-04-14 | 1
Event 6   | 2022-05-01 | 1
🎜Saya berharap dapat hasil yang serupa dengan ini: 🎜
eventname | eventdate  | accepted
---------------------------------
Event 1   | 2022-04-14 | NULL
Event 2   | 2022-04-25 | NULL
Event 3   | 2022-03-28 | 0
Event 5   | 2022-04-14 | 1
Event 6   | 2022-05-01 | 1
Event 4   | 2022-05-03 | 0
🎜
P粉052724364
P粉052724364

membalas semua(1)
P粉242126786

Salah satu cara ialah menggunakan keadaan CASE untuk menyusun keputusan

SELECT * 
FROM  invite_view 
ORDER BY CASE WHEN accepted IS NULL THEN accepted
              ELSE eventDate
         END

Hasil:

id nama acara eventdate diterima
1 Acara 1 2022-04-14 null
2 Acara 2 2022-04-25 null
3 Acara 3 2022-03-28 0
5 Acara 5 2022-04-14 1
6 Acara 6 2022-05-01 1
4 Acara 4 2022-05-03 0
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan