• 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怎么按条件排序

  • 相关阅读:
    景深概念与计算
    机器视觉相关术语
    Inno Setup 怎么编译文件的版本号
    Qt 可执行程序写入版本信息
    Qt 程序默认管理员权限运行
    Inno Setup 改变默认路径
    Inno Setup 打包安装程序中让“是否创建快捷方式”默认为“打钩”的方法
    Inno Setup 如何让生成的setup.exe文件双击以管理员权限打开
    Inno Setup 打包出的安装程序以管理员身份运行
    InnoSetup 安装前卸载旧版程序
  • 原文地址:https://www.cnblogs.com/Jason-Xiang/p/7026354.html
Copyright © 2020-2023  润新知