xiaowei09124 2015-11-27 08:32 采纳率: 66.7%
浏览 1864
已采纳

一条sql怎么出来下面的效果,用distinct和union来解决

本人数据库不熟,拜托大家了
图片说明
这是原始数据库里的数据
图片说明
这是sql运行后的效果

  • 写回答

5条回答 默认 最新

  • GrowingDarker 2015-11-27 09:05
    关注

    QQ邮件我已经回复你了
    create table TEST
    (
    ADDRESS VARCHAR2(20),
    TYPE VARCHAR2(20),
    DETAIL VARCHAR2(20)
    );

    insert into TEST (ADDRESS, TYPE, DETAIL)
    values ('上海', '闸北', 'A地');
    insert into TEST (ADDRESS, TYPE, DETAIL)
    values ('上海', '宝山', 'A地');
    insert into TEST (ADDRESS, TYPE, DETAIL)
    values ('上海', '普陀', 'A地');
    insert into TEST (ADDRESS, TYPE, DETAIL)
    values ('上海', '浦东', 'A地');
    insert into TEST (ADDRESS, TYPE, DETAIL)
    values ('河南', '周口', 'A地');
    insert into TEST (ADDRESS, TYPE, DETAIL)
    values ('河南', '郑州', 'A地');
    insert into TEST (ADDRESS, TYPE, DETAIL)
    values ('河南', '驻马店', 'A地');
    insert into TEST (ADDRESS, TYPE, DETAIL)
    values ('河南', '洛阳', 'A地');
    insert into TEST (ADDRESS, TYPE, DETAIL)
    values ('上海', '闸北', 'B地');
    insert into TEST (ADDRESS, TYPE, DETAIL)
    values ('上海', '宝山', 'B地');
    insert into TEST (ADDRESS, TYPE, DETAIL)
    values ('上海', '普陀', 'B地');
    insert into TEST (ADDRESS, TYPE, DETAIL)
    values ('上海', '浦东', 'B地');
    insert into TEST (ADDRESS, TYPE, DETAIL)
    values ('河南', '周口', 'B地');
    insert into TEST (ADDRESS, TYPE, DETAIL)
    values ('河南', '郑州', 'B地');
    insert into TEST (ADDRESS, TYPE, DETAIL)
    values ('河南', '驻马店', 'B地');
    insert into TEST (ADDRESS, TYPE, DETAIL)
    values ('河南', '洛阳', 'B地');
    commit;

    select nvl2(type, '', address) address, type, detail
    from (select distinct address, '' type, '' detail
    from test
    union
    select address, type, null detail
    from test
    group by type, address
    union
    select address, type, detail
    from test
    order by address, type desc, detail desc);

    效果图

    图片说明

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog