2013年7月11日 星期四

重複處理相同格式的字串 - notepad++ 巨集功能

重複處理相同格式的字串 Notepad++巨集

在工作上有時候在處理大量資料時

總是有一長串相同格式的字串需要擷頭擷尾時

巨集是個非常好用的東西

範例:有7行資料如下

account_00111.txt
account_00112.txt
account_00113.txt
account_00114.txt
account_00115.txt
account_00116.txt
account_00117.txt

現在我想要讓它變成只有數字如下

00111
00112
00113
00114
00115
00116
00117

這時候就是巨集派上用場的時候了

這時把游標移到第一行最左邊後 按下“錄製巨集”

接著開始在鍵盤上依序輸入:[DEL] *8 , [END] , [BACKSPACE] *4 , [↓] , [HOME]

輸入完立即按下“停止巨集”

接著按“重複執行單一巨集”並選擇“執行到文件結尾”後按確定

所有資料馬上就變的跟第一行一樣格式了!

巨集就是這麼的神奇!

SQL語法 GROUP BY - 分組計數/加總

所謂GROUP BY就是在所有資料中的某個欄位屬性下

檢查欄位值是否有相同者,若有就將其分成同一組

依此組別來計算在這同一種欄位值下的資料筆數或是對其它欄位值做加總

如下以 dep 欄位做分組使有相同值的資料分在同一組,

SUM(salary) 是計算相同組別中salary欄位的加總

COUNT(*) 則代表同一組裡面有多少筆資料


SELECT dep,SUM(salary),COUNT(*)

from Table

GROUP BY dep


若 GROUP BY 後面接多個欄位

則表示以這些欄位的每個值做排列組合

依每一種組合方式為一組

如A欄位有{1 2 3 } B欄位有{4 5}

若GROUP BY A,B 時

就會有[1,4][1,5][2,4][2,5][3,4][3,5]等六個組別

這做法需同時在 SELECT 後面加上相同欄位名以示結果

如下語法

SELECT A,B,COUNT(*)

from Table

GROUP BY A,B




SQL語法HAVING

GROUP BY 的例子在 GROUP BY 敘述後加入 HAVING 敘述如下

HAVING 後接 COUNT(*) > 5 表示只取資料筆數大於5的組別


SELECT GP_name,SUM(C),COUNT(*)

from Tablename

GROUP BY GP_name

HAVING COUNT(*) >5

ORDER BY GP_name


最後可加個 ORDER BY 敘述表示以 GP_name 的欄位值做排序

SQL語法 ORDER BY - 排序


就只是排序

一般敘述最後加個 ORDER BY 跟欄位名稱

再看是要遞增或遞減再加上 ASC 或 DESC

遞增為預設值所以可不用加 ASC

查看員工薪資由大到小例子如下:


SELECT name,id,salary

FROM employee

ORDER BY salary DESC


若 ORDER BY 後面接多個欄位

表示先排前面再排後面

如要先排部門 dept 再排薪資 salary 例子如下


SELECT name,id,dept,salary

FROM employee

ORDER BY dept,salary DESC

SQL 卡氏積(Cartesian Product)關聯

要多個Table的資料做卡氏積

就是不用打什麼

只要像下面這樣


SELECT *

FROM dept,employee


就會把所有兩邊Table的資料全部組合出來了

SQL JOIN - 關聯概述

join 大致分為 inner join & outer join

inner join 是只取出有符合條件的資料

outer join 則又分 left、right 與 full outer join


left outer join 是取出左方 table 所有資料

但條件不符沒 join 到的資料列中在其右方 table部份的資料均顯示 null


right outer join 是取出右方 table 所有資料

但條件不符沒 join 到的資料列中在其左方 table部份的資料均顯示 null


full outer join 是左右兩方 table 資料全都顯示 

而沒有 join 到的部份都顯示為 null


若加入 nature join 則是會自動 join 兩個 table 中相同欄位名稱的資料

並合併為一個顯示

SQL語法 AS - 欄位別名


SQL中要自定顯示出來的欄位名稱或屬性名稱

使用AS關鍵字範例如下:


SELECT A_name AS name

FROM......


或是無需加 AS範例如下:


SELECT A_name name

FROM......