【實驗】【SQL】為祖國60華誕獻禮之格式化行政區劃
偉大的祖國60華誕在即,為表達一名DBA的心聲,特完成了如下SQL實驗,明確一下祖國的行政區劃,抵制一切分裂祖國的行為:)!
1.建立測試表homeland_china
sec@ora10g> create table homeland_china (area varchar2(100), province varchar2(200));
2.初始化行政區劃資料
sec@ora10g> insert into homeland_china values
('華北' ,'北京市,天津市,河北省,山西省,內蒙古自治區');
sec@ora10g> insert into homeland_china values
('東北' ,'遼寧省,吉林省,黑龍江省');
sec@ora10g> insert into homeland_china values
('華東' ,'上海市,江蘇省,浙江省,安徽省,福建省,江西省,山東省');
sec@ora10g> insert into homeland_china values
('中南' ,'河南省,湖北省,湖南省,廣東省,廣西壯族自治區,海南省');
sec@ora10g> insert into homeland_china values
('西南' ,'重慶市,四川省,貴州省,雲南省,西藏自治區');
sec@ora10g> insert into homeland_china values
('西北' ,'陝西省,甘肅省,青海省,寧夏回族自治區,新疆維吾爾自治區');
sec@ora10g> insert into homeland_china values
('港澳臺','香港特別行政區,澳門特別行政區,臺灣省');
3.檢視初始化後的資料
sec@ora10g> col AREA for a10
sec@ora10g> col PROVINCE for a100
sec@ora10g> select * From homeland_china;
AREA PROVINCE
---------- -----------------------------------------------------------
華北 北京市,天津市,河北省,山西省,內蒙古自治區
東北 遼寧省,吉林省,黑龍江省
華東 上海市,江蘇省,浙江省,安徽省,福建省,江西省,山東省
中南 河南省,湖北省,湖南省,廣東省,廣西壯族自治區,海南省
西南 重慶市,四川省,貴州省,雲南省,西藏自治區
西北 陝西省,甘肅省,青海省,寧夏回族自治區,新疆維吾爾自治區
港澳臺 香港特別行政區,澳門特別行政區,臺灣省
7 rows selected.
4.為祖國60華誕獻禮:上面初始化後的資料顯示效果是不是不太直觀?我們來使用一系列技巧來格式化上面的行政區劃資料,使之顯示更加清晰。
請細緻比較處理後的輸出和初始化資料之間的區別,一切自明。
sec@ora10g> break on area
sec@ora10g> col AREA for a10
sec@ora10g> select area,
2 province
3 from (select area,
4 trim(substr(str, instr(str, ',', 1, level) + 1,
5 instr(str, ',', 1, level + 1)
6 - instr(str, ',', 1, level) - 1)) province,
7 level lv,
8 lag(level, 1, 0) over (partition by area order by level) lg
9 from (select area,
10 ','||province||',' str
11 from homeland_china
12 )
13 connect by instr(str, ',', 1, level) > 0
14 )
15 where province is not null and lv != lg
16 /
AREA PROVINCE
---------- -----------------------------------------------------------
東北 遼寧省
吉林省
黑龍江省
中南 河南省
湖北省
湖南省
廣東省
廣西壯族自治區
海南省
華東 上海市
江蘇省
浙江省
安徽省
福建省
江西省
山東省
華北 北京市
天津市
河北省
山西省
內蒙古自治區
港澳臺 香港特別行政區
澳門特別行政區
臺灣省
西北 陝西省
甘肅省
青海省
寧夏回族自治區
新疆維吾爾自治區
西南 重慶市
四川省
貴州省
雲南省
西藏自治區
34 rows selected.
5.上面的SQL語句在10g中還可以進一步使用“正規表示式”技巧使之簡化,具體SQL如下
sec@ora10g> break on area
sec@ora10g> col AREA for a10
sec@ora10g> select area,
2 province
3 from (select area,
4 regexp_substr(str, '[^,]+', 1, level) province,
5 level lv,
6 lag(level, 1, 0) over (partition by area order by level) lg
7 from (select area,
8 ','||province str
9 from homeland_china
10 )
11 connect by regexp_substr(str, '[^,]+', 1, level) is not null
12 )
13 where lv != lg;
AREA PROVINCE
---------- -----------------------------------------------------------
東北 遼寧省
吉林省
黑龍江省
中南 河南省
湖北省
湖南省
廣東省
廣西壯族自治區
海南省
華東 上海市
江蘇省
浙江省
安徽省
福建省
江西省
山東省
華北 北京市
天津市
河北省
山西省
內蒙古自治區
港澳臺 香港特別行政區
澳門特別行政區
臺灣省
西北 陝西省
甘肅省
青海省
寧夏回族自治區
新疆維吾爾自治區
西南 重慶市
四川省
貴州省
雲南省
西藏自治區
34 rows selected.
6.小結
以上SQL語句請在SQL*Plus命令列中完成。
Best regards to our homeland China.
Good luck.
-- The End --
1.建立測試表homeland_china
sec@ora10g> create table homeland_china (area varchar2(100), province varchar2(200));
2.初始化行政區劃資料
sec@ora10g> insert into homeland_china values
('華北' ,'北京市,天津市,河北省,山西省,內蒙古自治區');
sec@ora10g> insert into homeland_china values
('東北' ,'遼寧省,吉林省,黑龍江省');
sec@ora10g> insert into homeland_china values
('華東' ,'上海市,江蘇省,浙江省,安徽省,福建省,江西省,山東省');
sec@ora10g> insert into homeland_china values
('中南' ,'河南省,湖北省,湖南省,廣東省,廣西壯族自治區,海南省');
sec@ora10g> insert into homeland_china values
('西南' ,'重慶市,四川省,貴州省,雲南省,西藏自治區');
sec@ora10g> insert into homeland_china values
('西北' ,'陝西省,甘肅省,青海省,寧夏回族自治區,新疆維吾爾自治區');
sec@ora10g> insert into homeland_china values
('港澳臺','香港特別行政區,澳門特別行政區,臺灣省');
3.檢視初始化後的資料
sec@ora10g> col AREA for a10
sec@ora10g> col PROVINCE for a100
sec@ora10g> select * From homeland_china;
AREA PROVINCE
---------- -----------------------------------------------------------
華北 北京市,天津市,河北省,山西省,內蒙古自治區
東北 遼寧省,吉林省,黑龍江省
華東 上海市,江蘇省,浙江省,安徽省,福建省,江西省,山東省
中南 河南省,湖北省,湖南省,廣東省,廣西壯族自治區,海南省
西南 重慶市,四川省,貴州省,雲南省,西藏自治區
西北 陝西省,甘肅省,青海省,寧夏回族自治區,新疆維吾爾自治區
港澳臺 香港特別行政區,澳門特別行政區,臺灣省
7 rows selected.
4.為祖國60華誕獻禮:上面初始化後的資料顯示效果是不是不太直觀?我們來使用一系列技巧來格式化上面的行政區劃資料,使之顯示更加清晰。
請細緻比較處理後的輸出和初始化資料之間的區別,一切自明。
sec@ora10g> break on area
sec@ora10g> col AREA for a10
sec@ora10g> select area,
2 province
3 from (select area,
4 trim(substr(str, instr(str, ',', 1, level) + 1,
5 instr(str, ',', 1, level + 1)
6 - instr(str, ',', 1, level) - 1)) province,
7 level lv,
8 lag(level, 1, 0) over (partition by area order by level) lg
9 from (select area,
10 ','||province||',' str
11 from homeland_china
12 )
13 connect by instr(str, ',', 1, level) > 0
14 )
15 where province is not null and lv != lg
16 /
AREA PROVINCE
---------- -----------------------------------------------------------
東北 遼寧省
吉林省
黑龍江省
中南 河南省
湖北省
湖南省
廣東省
廣西壯族自治區
海南省
華東 上海市
江蘇省
浙江省
安徽省
福建省
江西省
山東省
華北 北京市
天津市
河北省
山西省
內蒙古自治區
港澳臺 香港特別行政區
澳門特別行政區
臺灣省
西北 陝西省
甘肅省
青海省
寧夏回族自治區
新疆維吾爾自治區
西南 重慶市
四川省
貴州省
雲南省
西藏自治區
34 rows selected.
5.上面的SQL語句在10g中還可以進一步使用“正規表示式”技巧使之簡化,具體SQL如下
sec@ora10g> break on area
sec@ora10g> col AREA for a10
sec@ora10g> select area,
2 province
3 from (select area,
4 regexp_substr(str, '[^,]+', 1, level) province,
5 level lv,
6 lag(level, 1, 0) over (partition by area order by level) lg
7 from (select area,
8 ','||province str
9 from homeland_china
10 )
11 connect by regexp_substr(str, '[^,]+', 1, level) is not null
12 )
13 where lv != lg;
AREA PROVINCE
---------- -----------------------------------------------------------
東北 遼寧省
吉林省
黑龍江省
中南 河南省
湖北省
湖南省
廣東省
廣西壯族自治區
海南省
華東 上海市
江蘇省
浙江省
安徽省
福建省
江西省
山東省
華北 北京市
天津市
河北省
山西省
內蒙古自治區
港澳臺 香港特別行政區
澳門特別行政區
臺灣省
西北 陝西省
甘肅省
青海省
寧夏回族自治區
新疆維吾爾自治區
西南 重慶市
四川省
貴州省
雲南省
西藏自治區
34 rows selected.
6.小結
以上SQL語句請在SQL*Plus命令列中完成。
Best regards to our homeland China.
Good luck.
-- The End --
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-615173/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 中華人民共和國行政區劃程式碼 (國家標準 GB2260) 的一個封裝封裝
- 爬取行政區劃程式碼
- 獲取行政區劃資訊(省、市)工具類
- 【高德地圖API】如何獲得行政區域?如何製作行政規劃圖?地圖API
- 中國行政區劃資訊JS庫china-locationJS
- 拂衣天氣(微天氣)—行政區劃資料(一)
- 拂衣天氣(微天氣)— 行政區劃資料(二)
- 【SQL*Plus】常用列格式化命令實驗參考SQL
- 盛世華誕,綠盟科技為網路安全“護航”
- 開源髮絲分割資料集CelebAHairMask-HQ(國慶獻禮)AI
- [“五一”獻禮]WindowBlinds破解全書
- 【智慧製造】中國製造2025獻禮之汽車篇
- 【ArcGIS For JS】前端geojson渲染行政區劃圖層並加標籤前端JSON
- 華雲資料西北總部落地西鹹新區 共建國家級雲端計算實驗室
- 最新全國省市區縣鄉鎮街道行政區劃資料提取(2022年)
- 普華 Linux 成為國家規劃教材《Linux 教程》作業系統藍本Linux作業系統
- 實驗7.Vlan劃分實驗
- 韓國計劃為區塊鏈初創公司提供稅收優惠區塊鏈
- 【實驗】使用SQL*Plus中set命令格式化SPOOL匯出的檔案SQL
- 開源:具有永遠奉獻精神的禮物
- 23c 新特性之實時SQL計劃管理SQL
- 【SQL_PLAN】Oracle 透過檢視sql_plan 格式化執行計劃SQLOracle
- OSS雲端儲存管理實踐(體驗有禮)
- IP地址資料庫 | 手機號段歸屬地資料庫 | 行政區劃省市區資料庫資料庫
- 資訊化實戰展示系列3 **市**區行政審批系統
- 西班牙執政黨提議在國家行政中使用區塊鏈技術區塊鏈
- NeurIPS放榜:華人貢獻42%,谷歌170篇屠榜;清華騰訊國內領先谷歌
- Oculus Rift變身智慧眼鏡 祖克伯虛擬現實計劃
- 豆包MarsCode國慶獻禮,輕鬆開發開發一款電子賀卡製作工具
- 荷蘭推出國家區塊鏈研究計劃區塊鏈
- 獻給 Dapper 使用者的一份禮物APP
- 2005新年獻禮:JdonFramework開源專案正式推出!Framework
- sql monitoring實驗SQL
- SQL Profile 實驗03SQL
- SQL Profile 實驗02SQL
- SQL Profile 實驗01SQL
- 大資料分析,魯班為祖師大資料
- 假如聖誕老人學會用大資料派發禮物大資料