精华内容
下载资源
问答
  • oracle多字段排序
    千次阅读
    2018-11-28 11:16:44

          生产中遇到的问题,两个保单生效日期都是同一日期,精确到日,所以通过日期无法准确排序,这时候就用到多字段排序!

    不多说直接上sql:

    select

    p.policy_no "policy_no"
                  from

    client_information ci, policy p
                 where

    p.applicant_no = ci.client_no
                   and ci.idno = '230963198511017650' order by effect_date desc ,p.created_date desc

    这里先按生效日期排序,再按创建日期排序,创建日期精确到秒,问题解决!
     

    更多相关内容
  • drop table temp ;create table temp ( id number , st varchar2(100), end varchar2(100)) ;insert into temp values( 1 , 11,null) ;insert into temp values( 1 , 66,null) ;insert into temp values( 1 , 33,nul...

    drop table temp ;

    create table temp ( id number , st varchar2(100), end varchar2(100)) ;

    insert into temp values( 1 , 11,null) ;

    insert into temp values( 1 , 66,null) ;

    insert into temp values( 1 , 33,null) ;

    insert into temp values( 1 , null,22) ;

    insert into temp values( 1 , null,55) ;

    insert into temp values( 2 , 33,null) ;

    insert into temp values( 2 , 77,null) ;

    insert into temp values( 2 , 11,null) ;

    insert into temp values( 2 , null,22) ;

    insert into temp values( 2 , null,55) ;

    insert into temp values( 2 , null,99) ;

    commit;

    select * from temp ;

    select t2.id

    ,regexp_replace(regexp_replace(ltrim(max(sys_connect_by_path(st,',')),','),'[,]{2,}',','),',$','')

    ,regexp_replace(regexp_replace(ltrim(max(sys_connect_by_path(end,',')),','),'[,]{2,}',','),',$','')

    from (

    select t1.*, lead(le1) over(partition by id order by le1 desc) le2 from

    ( select T.*, ROW_NUMBER() OVER( order by st||end) le1 from TEMP T ) t1 ) t2

    start with le2 is null

    connect by le2 = prior le1

    group by id

    源表数据:

    select * from temp ;

    ID STEND

    1111

    2166

    3133

    4122

    5155

    6233

    7277

    8211

    9222

    10255

    11299

    执行结果:

    11 11,33,6622,55

    2211,33,7722,55,99

    上述SQL 在 11G中运行没问题, 在10G环境需改为:

    with temp_data as (

    select t1.*, lead(le1) over(partition by id order by le1 desc) le2 from

    ( select T.*, ROW_NUMBER() OVER( order by st||end) le1 from TEMP T ) t1

    )

    select t2.id

    ,regexp_replace(regexp_replace(ltrim(max(sys_connect_by_path(st,',')),','),'[,]{2,}',','),',$','')

    ,regexp_replace(regexp_replace(ltrim(max(sys_connect_by_path(end,',')),','),'[,]{2,}',','),',$','')

    from temp_data t2

    start with le2 is null

    connect by le2 = prior le1

    group by id

    展开全文
  • 按a,b,c三个字段排序,再取某两条记录中间的全部记录。 假设 a,b,c全是数值型。我想取 (a,b,c)=(1,3,1) 和 (a,b,c)=(4,1,2)这两条记录之间的记录。 where (a between 1 and 4) and (b between 3 and 1) and (c...
  • 使用DECODE函数,语法:DECODE(条件,值1,返回值1,值2,返回值2,…值...先根据指定的字段排序,然后再根据日期排序 order bydecode(id,'a','1','b','2'),date desc 意思是 先跟 id 的值排序 如果 id =a 则排在第一...

    使用DECODE函数,语法:DECODE(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值)

    比如说 :

      decode(t.sex, '1', '男生', '2', '女生', '其他') as sex。

       sex 值是1 则是男生,2是女生,其他数值 则是 其他。

    排序用法:

    先根据指定的字段值排序,然后再根据日期排序

    order by decode(id,'a','1','b','2'),date desc

    意思是 先跟 id 的值排序 如果 id = a 则排在第一,id = b  则排第二,剩下的按照date日期排序

    展开全文
  • oracle字段排序

    千次阅读 2021-07-06 15:56:34
    select * from REVENUE.SEND_MAIL_DETAIL where UNIQUE_ID='${name}' ...前段时间有一个业务场景,需要把数据按照商户号和时间排序,已有字段 日期 acdt 、交易时间 createTime 、 商户号 merc_id 可以通过 ord
    select * from REVENUE.SEND_MAIL_DETAIL 
    where UNIQUE_ID='${name}' 
    ORDER BY MAIL_TYPE DESC,TO_NUMBER(RECEIVER_SEQ) ASC
    

    参考
    https://www.cnblogs.com/wangchuanjie/p/8066531.html
    前段时间有一个业务场景,需要把数据按照商户号和时间排序,已有字段 日期 acdt 、交易时间 createTime 、 商户号 merc_id

    可以通过 order by acdt desc,merc_id desc,createTime desc ,先通过 日期排序,再通过商户号排序,后通过交易时间排序可以达到这个效果,这样可以达到

    按天分割、一天中多个商户,每个商户里的交易数据 按照 交易时间排序的效果。

    展开全文
  • 1)按笔画排序 select * from Table order by nlssort(columnName,’NLS_SORT=SCHINESE_STROKE_M’) 2)按部首排序 select * from Table order by nlssort(columnName,’NLS_SORT=SCHINESE_RADICAL_M’) 3)按拼音...
  • oracle数据库-按字段排序

    千次阅读 2020-10-25 09:53:12
    应用场景:如果我们按排序且有升序和降序的时候的写法。 排序时,有两个关键字 :asc 表示升序,desc 表示降序; 所以我们在order by 后面添加 asc, desc。 select s.bank_code,s.account_id,s.amount from...
  • 一、情景描述 1、在实际开发中,遇到字段排序的情况,大概如下: 2、正序的需求是: 一类、二类、三类 ; 倒序需求是: 三类、二类、一类。 3、从图中可以看到,使用默认的排序,达不到预期效果,那么 Oracle中,...
  • 而当时之所以没考虑给number加排序,是因为当时的数据存在个日期,所以number是按照正序排列的,再给它加上排序,或多或少都会有点性能问题,而且此时也排序了,也就没加,最后还真出了问题。所以,产生问题的原因...
  • 本节主要介绍了SQL-ORDER BY 多字段排序包括升序、降序,下面有个示例,大家可以参考下
  • oracle 按特定字段排序

    2021-08-19 15:24:48
    规则:recod_type=3 的排在最上边,其余按时间倒序
  • Oracle字段内分组排序

    2021-10-11 13:48:11
    0.over(partition by col1 order by col2) 数据按照col1 字段进行分组,然后组内col2字段排序 MAX() OVER(PARTITION BY … ORDER BY … DESC) 排序规则只能为desc,否则不起作用,将查询到目前为止排序值最高字段的...
  • Oracle指定字段排序

    2019-03-08 14:21:26
    -- 按单位排序 --> <select id="getCheckContactInfoBySort" parameterType="java.util.Map" resultMap="BaseResultMap"> SELECT T.*, SYS.* FROM EDIIS_CHECK...
  • Oracle 中对中文字段进行排序.txt
  • Oracle9i之前,中文是按照二进制编码进行排序的。...2、Session级别的设置,修改ORACLE字段的默认排序方式: 按拼音:alter session set nls_sort = SCHINESE_PINYIN_M; 按笔画:alter session s
  • oracle 某个字段固定排序

    千次阅读 2019-06-03 11:32:28
    固定排序:order by decode() 语法:select * from 表名 order by decode(id,'值1',1,'值2',2,'值3',3);
  • ORACLE数据库 —— 排序与分组

    千次阅读 2021-09-14 17:30:01
    对同一个字段进行排序,只有第一个排序有效 select empno,sal from emp order by sal,sal desc 二、分组查询 1.关键字:group by 2.聚合函数 (1)sum():求和 (2)max():求最大值 (3)min():求...
  • Oracle中中文、数字混杂形式的字段进行排序的方法:例如:orderbyNLSSORT(字段名,'NLS_SORT=SCHINESE_PINYIN_M'),to_number(translate(字段名,'0123456789'||字段名,'0123456789'))NLSSORT() 函数:如果数据库字符...
  • wm_concat在行转列的时候非常有用,但在行转列的过程中的排序问题常常难以控制。可见下面例子:准备测试表:drop table t;create table t (n number,m number);insert into t values(1,1);insert into t values(5,3)...
  • 会遇到这样的需求,按照某个字段指定的顺序进行排序展示,比如按照面积段从大到小进行排序,这种需求如果直接使用order by 进行排序,对于字符串是按照字典顺序进行排序的,并不是我们想要的顺序排序oracle提供了...
  • 记一次笔记: 在一次业务中,需要使用自定义排序方式,在Oracle中就可以使用INSTR(……,排序字段)解决 …… ORDER BY INSTR(……,排序字段)
  • Oracle根据字段排序问题

    千次阅读 2019-05-24 17:32:43
    Oracle根据字段排序,如果字段类型是varchar字符串,而不是number会导致1和10分不清. 所以需要将varchar转为数字或者将表的字段类型更改为number
  • oracle字段排序 取第一条数据

    千次阅读 2018-09-12 16:54:59
    select * from (select ROW_NUMBER() OVER (PARTITION BY B.CALLING_NO ORDER BY B.ID DESC) RN, ..................) WHERE RN =1  
  • 1、VARVHAR2类型的字段值进行聚合,并用","隔开,使用LISTAGG函数,自带去重功能: LISTAGG(TANK, ',' ) WITHIN GROUP ( ORDER BY INSP_DATE ) AS TANK TANK TANK ----- ------- Q123 处理结果为:
  • 修改 Oracle 字段排序

    千次阅读 2018-09-08 11:11:45
    --修改 Oracle 字段排序 select object_id from all_objects where owner='TIE_JXMG' and object_name='OMS_EMPLOYEE'; select obj#,col#,name from sys.col$ where obj#=78129 order by col#; -- update sys....
  • Oracle通过一个字段的值将一条记录拆分为条记录前言 之前遇到了一次这样的需求,当时没有记录,这一次又赶上了,简单的记录一下. 本文个人拙见,若有出入,请指出--来自菜的颤抖 场景 表A中存放了集装箱的信息,一个集装...
  • 以某个字段分组 取其第一条数据 select * from (select t.app_id, t.emp_no, t.device_id, t.device_type, t.last_connect_time, t.device_model, rank() over(partition by t.device_type or

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 93,253
精华内容 37,301
关键字:

oracle多字段排序