iT邦幫忙

DAY 7
3

哇咧~夠了(Oracle SQL)系列 第 7

轉檔的小技巧(Oracle SQL)。(2013/09/22)

  • 分享至 

  • xImage
  •  

以前轉換系統時候,遇到過舊系統轉出來的資料,是每3列為1筆個人資料格式的這種檔案。
10001
孫XX
台灣台北
10002
趙根大
江蘇徐州
10003
馬YY
中國香港

可能轉到新系統後,要成為下格式
10001,孫XX,台灣台北
10002,趙根大,江蘇徐州
10003,馬YY,中國香港
一般這種轉換,把檔案直接丟到Excel加工處理成新格式,只是幾個複製貼上,再搞個排序就可以搞定。
如果只用SQL呢?先把原始檔案都匯入資料庫吧!

create table sql_ex007
( ind_seq    number,
  temp_txt   varchar2(240));

ind_seq 純粹是流水號 start with 1;

insert Into Sql_Ex007  ( Ind_Seq    ,    Temp_Txt )   Values (1,   '10001');
Insert Into Sql_Ex007  ( Ind_Seq    ,    Temp_Txt )   Values (2,   '孫xx');
Insert Into Sql_Ex007  ( Ind_Seq    ,    Temp_Txt )   Values (3,   '台灣台北');
Insert Into Sql_Ex007  ( Ind_Seq    ,    Temp_Txt )   Values (4,   '10002');
Insert Into Sql_Ex007  ( Ind_Seq    ,    Temp_Txt )   Values (5,   '趙根大');
Insert Into Sql_Ex007  ( Ind_Seq    ,    Temp_Txt )   Values (6,   '江蘇徐州');
Insert Into Sql_Ex007  ( Ind_Seq    ,    Temp_Txt )   Values (7,   '10003');
Insert Into Sql_Ex007  ( Ind_Seq    ,    Temp_Txt )   Values (8,   '馬yy');
Insert Into Sql_Ex007  ( Ind_Seq    ,    Temp_Txt )   values (9,   '中國香港');




select r1.c1, r1.emp_no, r2.emp_name, r3.emp_add
  from (select ind_seq c1, temp_txt emp_no
          From Sql_Ex007
         Where mod(Ind_Seq , 3) = 1 ) r1,
         --只取第1,4,7,.....筆記錄
       (select (ind_seq - 1) c2, temp_txt emp_name
          from sql_ex007) r2,
       (Select (Ind_Seq - 2) C3, Temp_Txt Emp_Add
          from sql_ex007 ) r3
 Where R1.C1 = R2.C2
   and r2.c2 = r3.c3;

逗號可用chr(44)。

結果

"C1","EMP_NO","EMP_NAME","EMP_ADD"
1,"10001","孫xx","台灣台北"
4,"10002","趙根大","江蘇徐州"
7,"10003","馬yy","中國香港"

上一篇
戲法人人會變(Oracle SQL)。(2013/09/21)
下一篇
上旬!中旬、下旬,是否有規則可循?真是懷念台灣的紅蟳...趕緊去尋...
系列文
哇咧~夠了(Oracle SQL)28
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
老鷹(eagle)
iT邦高手 1 級 ‧ 2013-09-23 08:15:55

沙發

月半車甫 iT邦研究生 3 級 ‧ 2013-09-23 09:01:22 檢舉

謝謝支持。

0
月半車甫
iT邦研究生 3 級 ‧ 2013-09-23 10:03:43

看樣子,應了我的主題 "哇咧~夠了"
鐵人紀錄中斷~ 看來要畫上休止符哩。

準備來挑戰"IT人生組"。
家裡測試區未導,
連假老家無電腦,
技術組果真難搞,
換個道重新起跑。

月半車甫 iT邦研究生 3 級 ‧ 2013-09-23 11:35:02 檢舉

鐵人不簡單,
挨踢人生刊,
三十天不斷,
苦辣加甜酸。

我要留言

立即登入留言