qq_50031016 2022-02-16 13:02 采纳率: 58.3%
浏览 67
已结题

sql请教,有点疑惑,不知道要怎么写

user 表
login_id phone deflut cratetime
12345 12345 0 2021-02-01
12345 12345 1 2022-04-01
45678 45678 0 2021-02-01
45678 45678 0 2022-02-01
0表示没有默认,1表示默认

我要根据login_idzhid字段只显示默认的一条数据,如何没有默认字段,根据时间显示最新的一条数据,这个该如何显示

  • 写回答

5条回答 默认 最新

  • Keifei 2022-02-22 10:20
    关注

    这不太简单了嘛~~分两部分,第一部分查默认的,然后union all没有默认的~~

    select 
    *
    from 
    user
    where deflut = '1'
    union all
    select 
    p.login_id,
    p. phone,
    p. deflut,
    p. cratetime
    from
    (select 
    *,
    row_number() over(partition by login_id order by cratetime desc) rn
    from 
    user
    where deflut = '0') p
    where p.rn = 1
    ;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 3月29日
  • 已采纳回答 3月21日
  • 创建了问题 2月16日