`

sql 按指定顺序排序

阅读更多

1、在ORACLE中使用Decode
      Decode实际用途:Decode可以看做是逐值替换,Decode回为某个字段中的每个值在一系列的if/then测试中查找匹配值并返回指定值。
格式:    
       Decode(value,if1,then1,if2,then2,if3,then3.......,else)
其中value代表表中的一个列(不考虑数据类型)或者一个计算结果(如一个日期减去另一个日子、字符列的substr等)。每一行都对value进行测试,如果value符合条件if1,则decode的结果为then1,以此类推。
事实上,可以构造多对if/then。如果value与任一个if都不符则返回else。
示例:
     

select * from person order by decode(person_key,4,1,5,2,6,3,7,4)

 
返回排序结果:
      person_key顺序 4     5    6   3   7

2、case
      可以用Case函数代替Decode,case函数关键字when then else 和end说明后面的逻辑路径,通常,与使用等价的Decode相比,使用case函数显得比较繁复,但可以使用程序可读性强,而且更容易延续。
示例:

select * from person order by case person_key when 4 then 1 when 5 then 2 when 6 then 3 when 7 then 4 end

 
     实现效果和使用decode一样

分享到:
评论

相关推荐

    SQL 按特定字段值排序

    SQL 按特定字段值排序的代码,有需要的朋友可以参考下。

    MySQL 按指定字段自定义列表排序的实现

    问题描述 大家都知道, MySQL 中按某字段升序排列的 SQL 为 (以 id 为... 例如, 我们想要按 id 以 5, 3, 7, 1 的顺序排列, 该如何实现。 这也是很多国内外同行经常遇到的问题之一。 下面我们给出按表中某字段, 以我

    Oracle数据库中ORDER BY排序和查询按IN条件的顺序输出

    主要介绍了Oracle数据库中ORDER BY排序和查询按IN条件的顺序输出的方法,其中ORDER BY的排序结果需要注意其是否稳定,需要的朋友可以参考下

    JavaScript对象数组如何按指定属性和排序方向进行排序

    排序可以分为按单个字段排序和按多个字段不同排序方向排序。单字段排序局限性较大,不能满足用户对数据的关注点变化的需求,而多字段排序就可以较好的弥补这个缺陷。 多字段排序,实现的方式从大的层面上可以分为...

    SQLSERVER的排序问题结果不是想要的

    在论坛里经常有人问这样的问题: 同一个查询的结果集为什麽有时候是按他想要的顺序排列,有时候又不是,或者是在SQL2000里是这个顺序,到了SQL2005/2008又是那个顺序? 其实,只要语句里没有指定“order by”,SQL...

    浅谈Mysql指定顺序排序查询

    最近做一个大屏展示项目,类似于机场,火车站那种展示班次信息的那种,...第四:要求后端数据传输过来的顺序必须时前端指定顺序。反正要求就是,前端只需要循环出数据就好,后端搞定其余的一切需求。 有两张表:table

    SQL Select语句完整的执行顺序

    1、from子句组装来自不同数据源的数据; 2、where子句基于指定的条件对记录行进行筛选; 3、group by子句将数据... 标准顺序的 SQL 语句为: Select 考生姓名, max(总成绩) as max总成绩 from tb_Grade where 考生姓名

    sql全角半角

    而且除空格外,全角/半角按unicode编码排序在顺序上是对应的 所以可以直接通过用+-法来处理非空格数据,对空格单独处理 like的时候,指定排序规则 COLLATE Latin1_General_BIN 是保证字符顺序按unicode编码排序 (此...

    Sql Server数据把列根据指定内容拆分数据的方法实例

    主要给大家介绍了关于Sql Server数据把列根据指定内容拆分数据的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Sql Server具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

    mysql自定义排序顺序语句

    mysql 自定义排序顺序 实例如:在sql语句中加入ORDER BY ... 您可能感兴趣的文章:SQL 按特定字段值排序SQL字符型字段按数字型字段排序实现方法MySQL中按照多字段排序及问题解决MySQL 按指定字段自定义列表排序的实现

    21天学会SQL

    9.4.4 按字段位置排序 188 9.4.5 查询前5行数据 189 9.4.6 WHERE与ORDER BY的 结合使用 189 9.5 高级条件查询 190 9.5.1 AND运算符 190 9.5.2 OR运算符 191 9.5.3 AND与OR的优先顺序问题 192 9.5.4 NOT运算符 193 ...

    SQL SERVER 2000开发与管理应用实例

    本书全面系统地介绍了SQL Server开发和管理的应用技术,涉及安装和配置SQL Server、日期处理、字符处理、排序规则、编号处理、数据统计与汇总、分页处理、树形数据处理、数据导入与导出、作业、数据备份与还原、用户...

    SQL查询安全性及性能优化

    扫描:可以理解为对数据进行顺序访问,并未使用索引进行查找 查找:可以理解为用索引进行查找 因此查找效率高于索引扫描效率 执行计划的意义 对于我们开发高质量SQL是很有帮助的 首先可以帮助我们查看SQL语句...

    经典SQL语句大全

    15、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.) select a,b,c from tablename ta where a=(select max(a) from ...

    SQL语法大全

    Source参数可以是一个Command对象名称、一段SQL命令、一个指定的数据表名称或是一个Stored Procedure。假如省略这个参数,系统则采用Recordset对象的Source属性。 ActiveConnection Recordset对象可以通过...

    SQL Server系统调优解决方案

    每个表只能有一个聚集索引,因为数据行本身只能按一个顺序存储。数据行本身构成聚集索引的最低级别(叶子节点)。只有当表包含聚集索引时,表内的数据行才按排序次序存储。如果表没有聚集索引,则其数据行按堆集方式...

    SQL培训第一期

    1 SQL基础 1.1 基本概念 结构化查询语言(Structured Query Language)简称SQL,是一种关系数据库查询语言,用于存取数据以及查询、更新和管理关系数据库系统。 1.2 语句结构 1.2.1 数据查询语言(DQL) 对数据库进行...

    SQL性能优化

     在FROM后面的表中的列表顺序会对SQL执行性能影响,在没有索引及ORACLE没有对表进行统计分析的情况下ORACLE会按表出现的顺序进行链接,由此因为表的顺序不对会产生十分耗服务器资源的数据交叉。(注:如果对表进行...

    SQL Server 2008管理员必备指南(超高清PDF)Part3

    6.11.2 更改排序规则和重新生成master数据库 第7章 数据库管理的核心任务 7.1 数据库文件和日志 7.2 数据库管理基础 7.2.1 在SQL Server Management Studio中查看数据库的信息 7.2.2 使用T-SQL查看数据库信息 7.2.3...

Global site tag (gtag.js) - Google Analytics