2018年5月9日 星期三

SQL語句匯總聚合函數、分組、子查詢及組合查詢

1.SQL語句匯總 - 聚合函數、分組、子查詢及組合查詢

2.GROUP_CONCAT 筆數串接函數 [MySQL]

簡單的範例
要選擇表單中的村莊名:
SELECT group_concat(village_name  separator ',' ) from `village_table`
出來的結果
大都城村,辛北庄村,辛南庄村,辛西庄村

複雜的範例

目的為了呈現多個條件的 SQL 語法。此 SQL 目的是要依供貨商分類取出貨品,並把貨品的流水號產生一個連結的字串 `gdsrec`,並把貨品總價寫成個一值 `sum`

table1: goods 貨品
gsn 流水號
pID 供貨商
price 單價
state 狀態

table2: provider 供貨商
pID 流水號
pname 名稱


關聯 `goods`.`pID`  <-> `provider`.`pID`
1
2
3
4
5
6
SELECT `g`.`pID` , `p`.`pname` ,
group_concat( `g`.`gsn` order by `g`.`gsn` SEPARATOR ',' ) AS `gdsrec` ,
sum( `g`.`price` ) AS `sum`FROM `goods` AS `g`
LEFT JOIN `provider` AS `p`USING ( `pID` )
WHERE `g`.`state` =1GROUP BY `g`.`pID`
ORDER BY `g`.`pID`LIMIT 0 , 30
結果:
pIDpnamegdsrecsum
1河馬公司94,94,94,25913947
2瘦比八企業社381,381500
3張氏企業734,734,73436

Regular Expression 正則表示式做字串比對

Regular Expression 中文翻成正則表示式 英文簡寫為 Regex 或 RegExp RegExp 是用來比對字串是不是有符合正確的格式 語法很簡單而且大部分語言都有支援它 使用時機 譬如說你需要在程式內請使用者輸入生日 你規定的格式 1996-08...