Memulangkan Baris dengan Nilai Tertentu Didahulukan
Masalah:
Anda ingin mendapatkan semula data daripada jadual, mengutamakan baris yang mengandungi nilai tertentu dalam lajur tertentu. Baris yang tinggal hendaklah mengikut susunan abjad berdasarkan lajur lain.
Pertimbangkan contoh jadual Pengguna dengan struktur berikut:
id | name | city |
---|---|---|
1 | George | Seattle |
2 | Sam | Miami |
3 | John | New York |
4 | Amy | New York |
5 | Eric | Chicago |
6 | Nick | New York |
Penyelesaian:
Untuk mengutamakan baris berdasarkan nilai tertentu dan abjad baris yang tinggal, gunakan yang berikut pertanyaan:
ORDER BY CASE WHEN city = 'New York' THEN 1 ELSE 2 END, city
Penjelasan:
Ungkapan CASE memberikan nilai keutamaan 1 kepada baris di mana lajur bandar sepadan dengan nilai yang ditentukan ('New York') dan nilai keutamaan 2 kepada semua baris lain. Ini memastikan bahawa baris yang mengandungi 'New York' muncul dahulu dalam set hasil.
Bahagian kedua klausa ORDER BY, bandar, seterusnya mengisih baris dalam setiap kumpulan keutamaan mengikut abjad berdasarkan lajur bandar.
Pertanyaan ini akan mengembalikan hasil berikut:
id | name | city |
---|---|---|
3 | John | New York |
4 | Amy | New York |
6 | Nick | New York |
1 | George | Seattle |
2 | Sam | Miami |
5 | Eric | Chicago |
Atas ialah kandungan terperinci Bagaimana Mengutamakan Baris dengan Nilai Tertentu Kemudian Isih Mengikut Abjad dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!