数据库中自定义排序

场景:有一张banner表,表中有一个status字段,有0, 1, 2三个状态位,我想要 1,0,2的自定义排序(这里是重点),然后再进行之上对sequence字段进行二次排序(这里看个人需求)。

普通的sql只能对一个字段进行简单的大小排序,如下:

SELECT*
FROMbanner
ORDER BY`status`,sequence ASC;

这里我们对banner这张表中的status字段先进行排序,然后对排序后的子集再对sequence字段进行排序。

但这样排序的话,我的status的排序顺序就成了0,1,2的顺序了,如何达到1,0,2呢? 就需要使用带数据库的函数,如下:

Oracle(decode函数):
SELECT*
FROMbanner
ORDER BYdecode( `status`, '别名1', 1, '别名2', 0, '别名3', 2 ),sequence ASC;
Mysql(field函数):
SELECT*
FROMbanner
ORDER BYfield( `status`, 1, 0, 2 ),sequence ASC;
效果如下:

以上!感谢我的专属DBA刘某

数据库中自定义排序规则,Mysql中自定义字段排序规则,Oracle中自定义字段排序规则,decode函数的用法,field函数的用法相关推荐

  1. 【mysql】使用变量实现类似oracle中lag函数功能

    mysql使用变量实现类似oracle中的lag函数功能 说明: 有一个订单表,每次下单都会记录是否使用了券,现模拟一个需求,将订单表插入日志表达到记录用户上一次是否用券以及此订单是否用券的情况 #- ...

  2. mysql添加序列触发器_在Oracle中创建自增序列之触发器

    下面是对Oracle表中一个字段建立自增序列的例子与说明,希望对大家有所帮助. 下面是对Oracle表中一个字段建立自增序列的例子与说明,,希望对大家有所帮助. /*================= ...

  3. oracle表中增加字段 sql语句,ORACLE中通过SQL语句(alter table)来增加、删除、修改字段...

    1.添加字段: alter table  表名  add (字段  字段类型)  [ default  '输入默认值']  [null/not null]  ; 2.添加备注: comment on ...

  4. mysql seq 重置_需要在Oracle中重置序列的值

    小编典典 如果使用该值,则不应重置该值的原因: 如果你有20条记录并删除5-10条记录会怎样?中间有一个缝隙,无法重新设置序列.序列永远不会生成无间隙的数字序列,即完美的1.2 .. n. 如果你调用 ...

  5. oracle 查询字段除了as,Oracle中怎样查询数据表的哪个字段是主键

    工作中要用到 Oracle 10g,经常要向其中的某张表插入事件发生的日期及时间.专门就 Oracle 的日期及时间显示方式和插入方式记一笔 工作中要用到 Oracle 10g,经常要向其中的某张表插 ...

  6. oracle r修改表名,oracle中修改表名

    <<>> answer1: ALTER TABLE old_table_name RENAME TO new_table_name;(大写为系统命令) answer2: SQL ...

  7. 资源放送丨《Oracle中为什么没有Double Write?Oracle支持原子写吗?》PPT视频

    点击上方"蓝字" 关注我们,享更多干货! 前段时间,墨天轮邀请数据库资深专家 李真旭(Roger) 老师分享了<Oracle中为什么没有Double Write?Oracle ...

  8. oracle判断字段为空时选用别的字段_oracle中使用sql查询时字段为空则赋值默认

    转至:http://www.th7.cn/db/Oracle/201501/86125.shtml oracle 通过 nvl( )函数sql 查询时为 空值 赋默认值 oracle 函数介绍之nvl ...

  9. 在Oracle中exception关键字,Oracle表字段有Oracle关键字出现异常解决方案

    一.问题由来 现在进行项目改造,数据库需要迁移,由原来的使用GBase数据库改为使用Oracle数据库,今天测试人员在测试时后台报了一个异常. 把SQL语句单独复制出来进行查询,还是报错,仔细分析原因 ...

  10. oracle中右击出现的含义,Oracle中经典的问题解决方案-Oracle

    对于 Oracle 数据库的开发,我们可能有时候会遇到一些奇怪的问题,与其它数据库存在不同的差异的问题,在这里我列举了一些比较有趣的问题 问题一:解决Oracle中时间问题 Oracle默认date类 ...

最新文章

  1. sql怎么实现取当前数据以及累计7天数据_年薪60万+大佬吐血整理字节跳动大数据面试真题...
  2. 基于Bind实现的DNS正反向解析及主从DNS的配置
  3. Qt+MinGW+OpenCV开发环境在win7系统下的搭建(最新20140423)
  4. 从函数计算架构看 Serverless 的演进与思考
  5. 普中51控制火焰传感器_热电偶在煤气灶天然气保护控制中的应用原理
  6. Windows Server 2008 R2 负载平衡入门篇
  7. Spring Boot系列二 Spring @Async异步线程池用法总结
  8. 常用公有云接入——AZURE
  9. 纯js实现人脸识别眨眨眼张张嘴案例——alive_face.js
  10. primefaces_使用WildFly 8.2.0.Final,Primefaces 5.1和MySQL 5的JDBC领域和基于表单的身份验证...
  11. python工作岗位要求_Python就业:Python就业岗位职能要求解析
  12. gevent版TCP服务器
  13. HashTable、HashSet和Dictionary的区别
  14. 结合Django+celery二次开发定时周期任务
  15. 1.1 项目过程中遇到date类型插入数据库的问题及解决方法
  16. nina数据库的采样频率_基于深度学习模型的表面肌电信号手势动作识别算法研究...
  17. PHP进销存源码 ERP多仓库管理系统源码 手机端+小程序版进销存 全开源可二开 uniapp
  18. 2020年开始,中国程序员前景一片灰暗,是这样吗?
  19. 【服务器数据恢复】IBM某型号服务器RAID5磁盘阵列数据恢复案例
  20. 由于启动计算机e盘不见了,电脑开机检测不到硬盘怎么办

热门文章

  1. Redis 笔记(09)— 过期时间 expire(设置、查询、取消过期时间)
  2. 连接池和协程池为何能提升并发能力?
  3. 2022-2028年中国聚硫橡胶行业市场研究及前瞻分析报告
  4. 2022-2028年中国PGA树脂行业全景调研及投资前景展望报
  5. 2022-2028年中国阻燃母料行业市场深度分析及发展规模预测报告
  6. 解决nginx负载均衡的session共享问题
  7. python性能分析之line_profiler模块-耗时,效率 时间
  8. Python type hints 之 Optional,Union
  9. Java使用itext生成Pdf
  10. GAAFET与FinFET架构