zoukankan      html  css  js  c++  java
  • Sql多条件排序

    多条件排序可以通过在order by语句后面使用case when then条件语句来实现。

    select * from 表名 ORDER BY case when 条件 then 0 else 1 end

    例子:

    1.创建表case_test

    共有id,case_type,case_location,case_way四个字段。

    2.导入数据:

    INSERT INTO "XIANGZH"."case_test" VALUES ('1', '盗窃案', '台东', '技术开锁');
    INSERT INTO "XIANGZH"."case_test" VALUES ('88', '谋杀案', '台东', '技术开锁');
    INSERT INTO "XIANGZH"."case_test" VALUES ('99', '盗窃案', '江西路', '技术开锁');
    INSERT INTO "XIANGZH"."case_test" VALUES ('5', '盗窃案', '台东', '暴力开锁');
    INSERT INTO "XIANGZH"."case_test" VALUES ('6', '盗窃案', '江西路', '暴力开锁');
    INSERT INTO "XIANGZH"."case_test" VALUES ('7', '谋杀案', '台东', '暴力开锁');
    INSERT INTO "XIANGZH"."case_test" VALUES ('8', '谋杀案', '江西路', '技术开锁');
    INSERT INTO "XIANGZH"."case_test" VALUES ('9', '谋杀案', '江西路', '暴力开锁');
    INSERT INTO "XIANGZH"."case_test" VALUES ('10', '盗窃案', '台东', '技术开锁');

    未排序截图:

    3.多条件分组排序

    select * from "case_test" ORDER BY 
    case when "case_type"='盗窃案' then 0 else 1 end,
    case when "case_location" = '台东' then 0 else 1 end,
    case when "case_way" = '技术开锁' then 0 else 1 end ASC

    查询结果是按照条件分组排序(先按case_type排序,再按case_location排序,最后按case_way排序),结果截图:

     4.满足条件个数排序 

    select * from "case_test" ORDER BY 
    case 
    when "case_type"='盗窃案' and "case_location" = '台东' and "case_way" = '技术开锁' then 0
    when "case_type"='盗窃案' and "case_location" = '台东' then 1
    when "case_type"='盗窃案' and "case_way" = '技术开锁' then 2
    when "case_location" = '台东' and "case_way" = '技术开锁' then 3
    when "case_type"='盗窃案' then 4
    when "case_location" = '台东' then 5
    when "case_way" = '技术开锁' then 6
    else 7
    end

    查询结果是按照满足条件的个数排序,截图:

    如果有更合理的sql写法,欢迎留言讨论。

    参考:

    ORACLE按条件排序的例子

    Oracle怎么按条件排序

  • 相关阅读:
    Certificate、Provisioning Profile、App ID
    boundingRectWithSize
    IOS照片框架
    UIlabel 属性text
    UIMenuController的使用,对UILabel拷贝以及定制菜单
    iOS 自定义emoji表情键盘
    IOS第三方字体
    IOS 验证码
    网上收集的以及自己总结的iOS开发技巧
    给自己一个坚持下去的理由
  • 原文地址:https://www.cnblogs.com/Jason-Xiang/p/7026354.html
Copyright © 2011-2022 走看看