ORACLE自定义顺序排序

ORACLE可以借助DECODE函数,自定义顺序排序:

select * from (
    select ‘Nick‘ as item from dual
    union all
    select ‘Viki‘ as item from dual
    union all
    select ‘Glen‘ as item from dual
    union all
    select ‘Robin‘ as item from dual
    union all
    select ‘Total‘ as item from dual
) pre_tab
order by decode(item, ‘Viki‘, 1, ‘Glen‘, 2, ‘Robin‘, 3, ‘Nick‘, 4, ‘Total‘, 99);

另外,在Report开发中,常需要将Total放最后,其它项则按其它排序方式(一般按正常的升序),可看作同一列有两种排序方式,那么可以这样:

select * from (
    select ‘Nick‘ as item from dual
    union all
    select ‘Viki‘ as item from dual
    union all
    select ‘Glen‘ as item from dual
    union all
    select ‘Robin‘ as item from dual
    union all
    select ‘Total‘ as item from dual
) pre_tab
order by decode(item, ‘Total‘, 2, 1), item;
时间: 2024-10-14 00:46:05

ORACLE自定义顺序排序的相关文章

SQL学习之使用order by 按照指定顺序排序或自定义顺序排序

我们通常需要根据客户需求对于查询出来的结果给客户提供自定义的排序方式,那么我们通常sql需要实现方式都有哪些,参考更多资料总结如下(不完善的和错误望大家指出): 一.如果我们只是对于在某个程序中的应用是需要按照如下的方式排序,我们只需在SQL语句级别设置排序方式: 1.按照oracled的默认方式排序:select * from table_name order by  col_name  (desc|asc);(默认为升序或无序对于升降只有在数字字段); 2.按照自定义的顺序排序:   sel

SQL学习之使用order by 依照指定顺序排序或自己定义顺序排序

我们通常须要依据客户需求对于查询出来的结果给客户提供自己定义的排序方式,那么我们通常sql须要实现方式都有哪些,參考很多其它资料总结例如以下(不完好的和错误望大家指出): 一.假设我们仅仅是对于在某个程序中的应用是须要依照例如以下的方式排序,我们仅仅需在SQL语句级别设置排序方式: 1.依照oracled的默认方式排序:select * from table_name order by  col_name  (desc|asc);(默觉得升序或无序对于升降仅仅有在数字字段); 2.依照自己定义的

js对数组按顺序排序

console.log("------默认排序(ASCII字符排序)------"); var arr = [1,2,55,12,88]; arr.sort(); //ASCII字符代码从小到大排序 console.log(arr.toString()); console.log("------自定义函数排序------"); var arr1 = [1,2,55,12,88]; arr1.sort(function(a,b){ //自定义函数排序 var a1=

Oracle分页查询排序数据重复问题

在项目开发过程中大量的使用了分页查询,当想要让数据按照日期排序时,出现了很多重复的数据出现. 造成这一问题出现的原因是:在数据中,日期的值不是唯一的. 我们知道 Oracle的分页查询是没有进行任何排序操作的,Oracle是顺序的从数据块中读取符合条件的数据返回到客户端. 而Oracle的排序算法不具有稳定性,也就是说,对于键值相等的数据,这种算法完成排序后,不保证这些键值相等的数据保持排序前的顺序. 解决这一问题的方法就是在后边增加一个唯一性列,比如主键,问题解决. select * from

Collections自定义List排序规则

Collections自定义List排序规则 //这里的顺序,是我自己定义的一个List<String> String[] regulation = {"jams","buke","rose","lua"}; final List<String> regulationOrder = Arrays.asList(regulation); String[] ordered = {"rose&quo

在一个二维数组中,每一行都按照从左到右递增的顺序排序

/*  * 在一个二维数组中,  * 每一行都按照从左到右递增的顺序排序,  * 每一列都按照从上到下递增的顺序排序.  * 请完成一个函数,输入这样的一个二维数组和一个整数,  * 判断数组中是否含有该整数.  */ public static void main(String[] args) { int[][] array = {{1,2,3},{4,5,6},{7,8,9}}; System.out.println(Find2(1, array)); } /*  * 思路一:暴力遍历法  

C#12种顺序排序

这篇主要写关于顺序排序的十二种算法,也是我有关算法的第一帖.主要是写,对每种算法的理解与测试. 速度测试,主要根据一千.一万.五万.百万这 四种.速度纪录还是用Stopwatch 这个类.使用随机数Random生成随机的集合. 其中数量五万左右的小数量排序,使用快速排序,速度最快.大数量百万左右使用鸽巢排序,速度最快.废话不多说,接下来上代码. 第一种:冒泡排序 冒泡排序我相信是每个程序员,都会学到的一种比较排序算法.非常简单,通过多次重复比较每对相邻元素,并按规定的顺序交换他们,最终把数列进行

Oracle自定义数据类型 1

原文 oracle 自定义类型 type / create type 一 Oracle中的类型 类型有很多种,主要可以分为以下几类: 1.字符串类型.如:char.nchar.varchar2.nvarchar2.2.数值类型.如:int.number(p,s).integer.smallint.3.日期类型.如:date.interval.timestamp.4.PL/SQL类型.如:pls_integer.binary_integer.binary_double(10g).binary_fl

对聚集表查询的时候,未显式指定排序列的时候,默认查询结果的顺序一定是按照聚集索引顺序排序的吗

在sql server 中,如果一张表存在聚集索引的时候,大多数情况下,如果进行select * from TableName查询,默认的返回顺序是按照聚集所在列的顺序返回的 但是,在一张表存在聚集索引的时候,并不一定所有的情况都是按照聚集索引列的顺序排列的, 下面开始测试 create table TestDefaultOrder ( Id int identity(1,1) primary key,--主键上默认会建立聚集索引 Col2 char(5), COL3 char(5) ) --写