Home
R
Cancel

[SQL] 外部結合 Left Join

Left Join left join:「以左顯示」,會返回左邊資料表所有的資料列,以及未滿足結合條件的左則資料(就算左側資料沒有符合條件,也會顯示,簡單說,就是左側資料表的全部資料),而右側資料表如果沒有符合匹配的資料值就會顯示null。 比如:on a.id = b.id,則顯示a表中存在的全部數據,以及a、b中都有的數據,a中有,b中沒有的數據以null顯示。 範例一 取得商品...

[SQL] 子查詢(二)

在 Where in 中使用子查詢 --取得4月份有販賣之商品的商品名稱(使用子查詢) select [商品名稱] from [商品清單] where [商品ID] in (select distinct [商品ID] from [販賣資料] where [處理日] between '2006-04-01' and '2006-04-30') IN可能存在的效能疑慮(效能差),...

[SQL] 子查詢(一)

在 Where 中使用子查詢 select 中還有另一個 select,這樣的寫法稱為「子查詢」。 子查詢當中,內側的 select 會先被執行,然後其結果將會傳給母查詢進行處理。 --取得販賣單價最高之商品的商品名稱 select [商品名稱] from [商品清單] where [販賣單價]=(select max([販賣單價]) from [商品清單]) 在這範例中,先從商品...

[SQL] 日期的加工 Datepart()

使用Datepart()來取出「年」 、「月」的資料,並進行群組化 group by。 取出「年」:DATEPART(YYYY,[處理日]) 年份 取出「月」:DATEPART(MM,[處理日]) 月份 每張傳票都有明細資料,因為要計算傳票數時,必須要在傳票編號上加上distinct (distinct [傳票編號]) ...

[SQL] 最大值 Max(), 最小值 Min(), 平均值 Avg()

最大值 Max(), 最小值 Min(), 平均值Avg() 會把 NULL值排除在統計對象中。 最大值 Max(), 最小值 Min()對「日期」也有效,因為可以用來求得「最新的處理日」。 取得單價的最大值 Max(), 最小值 Min(), 平均值 Avg() --取得販賣單價的最大值 Max(), 最小值 Min(), 平均值 Avg() select max([販賣單...

[SQL] 去除重複列 Distinct

Distinct將重複的資料列變為一列。 --取得4月份有賣出商品的商品ID列表 --但ID不能重複 select distinct 商品ID from [販賣資料] where [處理日] between '2006-04-01' and '2006-04-30'

[SQL] Having:取代Where搭配聚合函數

Having (取代Where搭配聚合函數) Having 子句是用來取代 Where 搭配聚合函數 (aggregate function) 進行條件查詢,因為 Where 不能與聚合函數一起使用。 「聚合函數」指的也就是 AVG()、COUNT()、MAX()、MIN()、SUM() 等這些內建函數。 練習1: Join + Group By + Havving + Sum...

[SQL] 群組化 Group By、計數Count()、求和Sum()

Count() & Sum() Count()計算個數: 對符合條件的結果(記錄)計算資料行的個數 Sum() 數值求和:對符合條件的資料行內的數值求和 比如:fruit表 id name price 1 apple 2 2 banana 4 count(price):結果為: 2 (表示有2筆記錄) sum(price):結果為: 6 (p...

[SQL] 取得件數 Count()

效率: Count(1) > Count(欄位名) > Count(*) count(1) 是絕對快,它只統計記錄條數,對條件下的表掃描一遍而已(包含NULL) count(*) 是可能快,有主鍵的時候只掃主鍵,主鍵數等於記錄數(包含NULL) count(欄位別) 回傳列數(不包含NULL) count(主鍵)=count(1) /* count(1) ...

[SQL] 指定顯示順序(Order By)

Order By 預設ASC排序 ASC升幕 DESC降幕 以姓名拼音順序來輸出負責人姓名 --以姓名拼音順序來輸出負責人姓名 select [負責人姓名] from [dbo].[負責人清單] order by [姓名拼音] 以升幕排列姓名拼音;降幕排列負責人姓名 也可以指定複數的行來排序 --以升幕排列姓名拼音;降幕排列負責人姓名 select [姓名拼音], [...