Çok koşullu sıralama, bir durum olduğunda koşullu ifadenin ardından ifadeye göre sırayla kullanılmasıyla gerçekleştirilebilir.
* tablo adından SİPARİŞE GÖRE harfini seçin, sonra koşul 0 yoksa 1 sonAşağıdaki örnek şunu göstermektedir:
1. case_test tablosu oluşturun
Dört alan vardır: id, case_type, case_location ve case_way.
tablo case_test (id numarası (5), case_type varchar2 (20), case_location varchar2 (20), case_way varchar2 (20));2. Verileri içe aktarın:
INSERT INTO case_test VALUES ('1', 'Hırsızlık', 'Taitung', 'Teknik kilit açma'); INSERT INTO case_test VALUES ('88', 'cinayet davası', 'Taitung', 'teknik kilit açma'); INSERT INTO case_test VALUES ('99', 'Hırsızlık', 'Jiangxi Yolu', 'Teknik kilit açma'); INSERT INTO case_test VALUES ('5', 'Hırsızlık', 'Taitung', 'Şiddet kilidini açma'); INSERT INTO case_test VALUES ('6', 'Hırsızlık', 'Jiangxi Yolu', 'Şiddetin kilidini açma'); INSERT INTO case_test VALUES ('7', 'cinayet davası', 'Taitung', 'şiddetli kilit açma'); INSERT INTO case_test VALUES ('8', 'cinayet davası', 'jiangxi yolu', 'teknik kilit açma'); INSERT INTO case_test VALUES ('9', 'cinayet davası', 'Jiangxi Yolu', 'şiddetli kilit açma'); INSERT INTO case_test VALUES ('10', 'Hırsızlık', 'Taitung', 'Teknik kilit açma');Sıralanmamış ekran görüntüsü:
3. Çok koşullu gruplama ve sıralama
"case_test" den * seçin SİPARİŞ VERİN "case_type" = 'hırsızlık vakası' ve ardından 0, aksi takdirde 1 uç olduğu durum, "case_location" = 'Taitung' sonra 0 else 1 end olduğunda durum, "case_way" = 'Teknik kilit açma' ve ardından 0 aksi takdirde 1 ASC sonSorgu sonuçları koşullara göre gruplandırılır ve sıralanır (önce büyük / küçük harf türüne göre sıralanır, sonra büyük / küçük harf_konumuna göre sıralanır ve son olarak büyük / küçük harf_ yoluna göre sıralanır), sonucun ekran görüntüsü:
4. Memnun kalan koşulların sayısına göre sıralayın
case_test'ten * seçin SİPARİŞE GÖRE case_type = 'Theft' ve case_location = 'Taitung' ve case_way = 'Teknik kilit açma' olduğunda 0 case_type = 'Theft' ve case_location = 'Taitung' olduğunda 1 case_type = 'hırsızlık' ve case_way = 'teknik kilit açma' olduğunda 2 case_location = 'Taitung' ve case_way = 'Teknik kilit açma' olduğunda 3 case_type = 'hırsızlık vakası' olduğunda 4 case_location = 'Taitung' olduğunda 5 case_way = 'Teknik kilit açma' olduğunda 6 başka 7 sonSorgu sonuçları, tatmin edici koşulların sayısına göre sıralanır, ekran görüntüsü:
Alan sınırlıdır Bu SQL çok koşullu sıralamaya giriştir.Sence optimizasyon için yer var mı? Bir mesaj bırakıp birlikte tartışmaya hoş geldiniz.
Daha sonra daha fazla DBA içeriği paylaşılacak, ilgilenen arkadaşlar buna dikkat edebilir!