在Notepad++處理文字時
若要對一段文字中的特定格式部份做特別處理
使用Expressions Regular是一個好選擇
假如在一堆字串中我要找出所有八字元的日期格式YYYYMMDD(如20140201)
並都改成民國年的1030201
所要做的步驟會是---
先點出取代功能視窗
搜尋模式選 “用類型表式”
並輸入如下
尋找目標:2014(\d\d\d\d)
取代成:103\1
然後按下“全部取代”
所有日期格式的2014就都改為103了
為什麼會這樣呢
我們“尋找目標”其中輸入的“(\d\d\d\d)”其實是代表“任四個相連的數字”
如果你確定你的所有字串中2014後面接四個相連數字的部份沒有不是日期的
就可以使用該方法
而“取代成”中輸入的“\1”就是代表“尋找目標”中的“(\d\d\d\d)”,也就是第1個括號群組內的字串
假設你輸入“(\d\d\d\d)(\d\d\d\d)”, 就可以分別用“\1\2”表示了
這樣的字串群組化的功能在處理字串上有很多好處
就等著讀者自己慢慢發現吧~~
橘子洋朵
2014年2月2日 星期日
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 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
right outer join 是取出右方 table 所有資料
但條件不符沒 join 到的資料列中在其左方 table部份的資料均顯示 null
而沒有 join 到的部份都顯示為 null
訂閱:
文章 (Atom)