Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk mengisih hasil SQL jika satu lajur kosong?

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粉969666670P粉969666670178 hari yang lalu330

membalas semua(1)saya akan balas

  • P粉745412116

    P粉7454121162024-04-05 22:01:17

    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;

    balas
    0
  • Batalbalas