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

一条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 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退
  • ¥20 win系统的PYQT程序生成的数据如何放入云服务器阿里云window版?
  • ¥50 invest生境质量模块