Bagaimana untuk mengisih hasil SQL jika satu lajur kosong?
P粉969666670
P粉969666670 2024-04-05 00:39:32
0
1
461

Saya ada soalan tentang pengisihan hasil pertanyaan. Saya mempunyai 3 lajur untuk diisih:

ORDER BY level DESC, logo DESC, bName ASC

Saya ingin memesan "tahap" tertinggi melalui DESC dahulu dan ini berjaya.

Selepas itu saya ingin memesan jika "logo" kosong tetapi bukan kandungan logo yang pertanyaan saya laksanakan.

Akhirnya saya nak order dengan bName ASC

Jadi output yang saya mahukan ialah ini:

1. Level-3 has logo bName a-z
2. Level-3 has no Logo bName a-z
3. Level-2 has logo bName a-z
4. Level-2 has no Logo bName a-z
5. Level-1 has logo bName a-z
6. Level-1 has no Logo bName a-z

Adakah mungkin untuk mencapai ini dengan hanya satu pertanyaan bersih?

Input contoh yang sepadan:

Peringkat logo bNama
3 Ujian.jpg Nama ujian
2 Nama ujian
1 12test.jpg Nama ujian lain
1 3test.jpg Tanpa Nama
2 John Doe
2 Dodo
3 5test.jpg Nama ujian
1 sdsd-test.jpg Nama ujian

Dalam sesetengah kes, logo lajur kosong (cth. = '' ), tetapi bukan NULL

P粉969666670
P粉969666670

membalas semua(1)
P粉745412116

Anda belum memberikan maklumat tentang data anda dan maksud "logo kosong" sebenarnya, tetapi prinsipnya ialah:

ORDER BY 
  level DESC, 
  case when logo  '' then 1 else 2 end,
  bName ASC;
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan