精华内容
下载资源
问答
  • oracle根据多个字段排序
    2021-09-28 11:07:48

    根据GOODS_NUMBER,USER_ID分组, 然后组内根据CREATED_DATE排序,生成每条记录的排序号rn,取每组中rn>1的记录为重复记录, 最后根据id删除

    delete  HNZSX_ORDER WHERE id in  
    (
      select id from (
             select t.*, row_number() over(partition by GOODS_NUMBER,USER_ID order by CREATED_DATE desc) rn from HNZSX_ORDER t 
      ) where rn > 1
    )

    更多相关内容
  • 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 ,先通过 日期排序,再通过商户号排序,后通过交易时间排序可以达到这个效果,这样可以达到

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

    展开全文
  • oracle数据库-按多个字段排序

    千次阅读 2020-10-25 09:53:12
    应用场景:如果我们按排序且有升序和降序的时候的写法。 排序时,有两关键字 :asc 表示升序,desc 表示降序; 所以我们在order by 后面添加 asc, desc。 select s.bank_code,s.account_id,s.amount from...

    应用场景:如果我们按多列排序且有升序和降序的时候的写法。 

    排序时,有两个关键字 :asc  表示升序,desc 表示降序;

    所以我们在order by 后面添加 asc, desc。

    select s.bank_code,s.account_id,s.amount from Bp3_Bank_Account_Record s  order by 2 desc, 3 asc;
    

    这种写法,将Bp3_Bank_Account_Record该表的 account_id  字段 按降序排列,amount字段按照升序排列。 如果多个列也可以参考这种写法

    以下为截图:

    我们可以看到,按照第二列整体降序,按照第三列分区间升序排列。

     

    展开全文
  • 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

    展开全文
  • 使用DECODE函数,语法:DECODE(条件,值1,返回值1,值2,返回值2,…值...先根据指定的字段排序,然后再根据日期排序 order bydecode(id,'a','1','b','2'),date desc 意思是 先跟 id 的值排序 如果 id =a 则排在第一...
  • 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通过一个字段的值将一条记录拆分为条记录前言 之前遇到了一次这样的需求,当时没有记录,这一次又赶上了,简单的记录一下. 本文个人拙见,若有出入,请指出--来自菜的颤抖 场景 表A中存放了集装箱的信息,一个集装...
  • order by sd.ROW_SORT asc,f.code asc 如上:先按照sd.ROW_SORT字段升序排列,然后再将其中相同的字段用f.code进行升序排列,以此类推
  • ORACLE查询时需要返回多个字段(例如:A/B/C/D/E/F),但是字段A或者字段A+B不唯一,此时需要实现分页加根据字段A或者字段A+B去重,其中A还是类似于工号之类的字段,此时distinct/group by都无法满足业务需求,最终...
  • 本节主要介绍了SQL-ORDER BY 多字段排序包括升序、降序,下面有示例,大家可以参考下
  • 以某个字段分组 取其第一条数据 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
  • oracle多字段排序

    千次阅读 2018-11-28 11:16:44
    生产中遇到的问题,两保单生效日期都是同一日期,精确到日,所以通过日期无法准确排序,这时候就用到多字段排序! 不说直接上sql: select p.policy_no "policy_no"  from client_information ci...
  • 解决order by多个字段排序无效!

    千次阅读 2021-07-05 15:25:11
    2021) ORDER BY T.YEAR DESC, T.REGION_TYPE ASC , T.REGION_NUM ASC ----------------------------------------------------------------------------------------------------------- 上面的查询排序是错乱的。...
  • Oracle中中文、数字混杂形式的字段进行排序的方法:例如:orderbyNLSSORT(字段名,'NLS_SORT=SCHINESE_PINYIN_M'),to_number(translate(字段名,'0123456789'||字段名,'0123456789'))NLSSORT() 函数:如果数据库字符...
  • 为了提升工程性能,尽量减少数据库的连接,这时候...多字段排序,第一排序,第二排序 select a.* ,b.* from table_a a,table_b b order by a.id,b.id 也就是先按照table_a id排序,当相同的时候,再按照b.id排序...
  • 如果分别按纳税人识别号,税务机关代码,月份3个字段查询,每个字段在该表中的可选性或约束性都不强,如一个纳税人识别号有很纳税记录,一个税务机关代码和同一月份记录就更了,所以3个字段合起来,"某个纳税人识别号+...
  • 窗口函数-order by多个字段排序

    千次阅读 2022-03-22 15:07:57
    他的要求是,查询时间最近一天,结果我就直接窗口排序降序排第一,就出现了这问题 要求是最后一次出现,而且要有值 然后就尝试了一下 rn1和rn2:这地方partition 两值就会常出现两种排序 rn3和rn4:这...
  • oracle order by 多个字段排序

    千次阅读 2017-12-19 16:40:00
    前段时间有一个业务场景,需要把数据按照商户号和时间排序,已有字段 日期 acdt 、交易时间 createTime、 商户号 merc_id 可以通过order by acdt desc,...按天分割、一天中多个商户,每个商户里的交易数据 按照 ...
  • Oracle查询所有字段,再加两个字段拼接,select a.*,(SNO||SNAME) from TEST_STUDENT a;同理,查询所有字段,其中两个字段求和:(SNO和SAGE都是NUMBER数据类型)select a.*,(SNO+SAGE) from TEST_STUDENT a;select * ...
  • Oracle Order By用法详解

    千次阅读 2021-05-01 02:29:06
    要按列以升序或降序查询行记录,必须明确指示Oracle数据库要如何去排序。例如,您可能希望按名称的字母顺序列出所有客户,或者按照从最低到最高信用限额的顺序显示所有客户。要对数据进行排序,我们可以将ORDERBY...
  • 注意尽量不要用*,改用必须取用的字段名 select t.* from (select a.*, row_number() over(partition by a.分组字段 order by a.排序字段 desc) rw from 表名 a) t where t.rw = 1  ...
  • ORACLE ORDER BY的多种排序

    万次阅读 2022-01-05 23:37:00
    1. 按单个字段排序 升序:ORDER BY ASC(默认) 降序:ORDER BY DESC 以指定的次序返回查询结果实际提取数据或生成报表时,一般都要根据一定的顺序查看,比如,想查看单位所雇员工的信息。 SELECT empno, ename...
  • 简单的oracle group by 只根据某个字段或者某几 分组
  • Oracle的order by关键字

    千次阅读 2021-05-01 02:29:13
    order by关键字用于对查询的结果集进行排序。我们通过示例来介绍order by关键字的用法。一、生成测试数据用以下SQL创建超女基本信息表(T_GIRL),插入一些测试数据。create table T_GIRL(id char(4) not null, -- ...
  • 按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...
  • 背景:一张表 有 name , crt_time , work_sts 三个字段这张表里存在这样的数据'a', '2018-12-18 21:37:24', '未''a', '2018-12-19 09:37:24', '完''a', '2018-12-19 21:37:24', '未''b', '2018-11-18 21:37:24', '完...
  • 在很查询下我们可能遇到这样的需求,需要根据个字段不同的状态排序。比如现有一张表 t_test 。这张表有id,is_complete,update_time,desc字段。其中is_complete 字段关联一张字典表,状态分别为(0 未办结; 1 ...
  • Oracle根据字段去重、取最大值

    千次阅读 2022-04-02 17:42:47
    oracle去重、取最大值
  • 在网上看到oracle全文索引都是对一张表一个字段进行全文检索,我想对多个表多个字段按照关键字的匹配度排序,sql语句如下 select score(1) ,score(2), CDA.AREANAME,CDS.STREETNAME from C_DICT_STREET cds
  • 1.正常情况下我们排序都会按照某一列直接order by xxx,我的需求是按照某一列的部分进行排序,正常...使用substr函数截取字符中的所需位数进行排序即可,如果排序的条件是列一直往后追加即可,会按照在上一条件...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 82,737
精华内容 33,094
热门标签
关键字:

oracle根据多个字段排序