程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 數據庫-一條sql怎麼出來下面的效果,用distinct和union來解決

數據庫-一條sql怎麼出來下面的效果,用distinct和union來解決

編輯:編程綜合問答
一條sql怎麼出來下面的效果,用distinct和union來解決

本人數據庫不熟,拜托大家了
圖片說明
這是原始數據庫裡的數據
圖片說明
這是sql運行後的效果

最佳回答:


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);

效果圖

圖片說明

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved