Minus會取得兩個Select語法間的差,只有Oracle才能使用。 Sql Server 可以使用 Except。 範例 取得存在於負責人清單的負責人id、姓名,但是不存在於分站負責人清單的分店負責人的負責人列表 --取得存在於負責人清單的負責人id、姓名,但是不存在於分站負責人清單的分店負責人的負責人列表 --差集概念, 可以用Except select [負責人ID], [...
[SQL] 根據月份統計商品別的數量 Sum()、Case(When Then Else)
範例 取得月份別的商品別販賣數量。 行(Column)設定為月份別(2006/4、2006/5、2006/6) select B.商品名稱, sum( case when datepart(yyyy, [處理日]) = 2006 and datepart(mm, [處理日]) = 4 then A.數量 ...
[SQL] Order By 1 什麼意思?
order by 1:數字1表示按select的第一個欄位排序。 order by 1,2,3:ORDER BY後面的數字 1,2,3 分別代表select後面的第1、第2、第3個欄位。 比如,使用Union集合運算子時,當各select語法中的欄位名有所不同時,就要在order by語法中指定「欄位編號」。 範例 select [負責人ID], [負責人姓名] from ...
[SQL] 集合運算子 Union All 聯集 (有重複列Row)
Union All一樣會取得複數的select語法的和,與Union不同的地方是在於「包含重複列(Row)」,也就是說,有重複資料的列(Row)也會輸出。 語法 select a, b from table1 union all --union all 寫在select與select語法之間 select c, d from table2 範例一 同時取得負責人清單的負責人ID、姓...
[SQL] 集合運算子 Union 聯集 (沒有重複列Row)
Union是用來取得多個select語法之和的集合運算子(聯集)。Union會將重複的列(Row)刪除。 透過Union集合運算,可以把不同資料表的結合體拿來做邏輯運算。 語法 只要將union寫在select與select語法之間即可 兩個select語法的格式與欄位數量(column)必須相等 如果欄位數量(column)不相等,就要放入null使其相等 sele...
[SQL] 以月為單位的加減運算 Dateadd()
語法 Dateadd(datepart, number, date) datepart單位可以指定加減運算的單位year、month、day。 範例 (以月為單位) 求得現在日期的上個月之相同日期 select DATEADD(MONTH, -1, GETDATE()) "上個月相同日期" 範例 (以日為單位) 求得昨天、今天、明天的日期 select DATEADD(DAY...
[SQL] 根據年月取得第一天和最後一天
取得當月、年的第一天和最後一天 -- 當月第一天 select dateadd(month, datediff(month, 0, getdate()), 0) -- 當月最後一天(想法:下個月的第一天減去一天) select dateadd(month, datediff(month, 0, dateadd(month, 1, getdate())), -1) -- 當年第一天 sele...
[SQL] 求兩日期間的相差日數 Datediff()
取得兩個日期之間的相差日數,可以用Datediff()函數求得由特定日期到今天為止的「經過日數」,或是由今天到特定日期為止的「剩餘日數」。 語法 Datediff(datepart, date1, date2) 用datepart單位來取得date1到date2的差額,datepart的單位與Dateadd()函數一樣,可以指定year、month、day。 求剩餘日數 顯示到月底為...
[SQL] 求月底日期 Dateadd()、Datediff()、Eomonth()
Oracle有用來求得月底日期的LAST_DAY()函數,但SQL Server沒有與LAST_DAY()相當的函數,因此要自己計算。 當月的最後一天 = 下個月的第一天-1 DATEADD() + CONVERT()組字串 --求得這個月最後一天的日期 --當月的最後一天 = 下個月的第一天-1 select DATEADD(DAY,-1, DATEADD(MONTH, 1,...
[SQL] 日期運算-加減運算 Getdate()、Dateadd()
以日為單位 Getdate()搭配運算符 +- 請輸出昨天、今天、明天的日期 --請輸出昨天、今天、明天的日期 select GETDATE()-1 "昨天", GETDATE() "今天", GETDATE()+1 "明天" 也可以使用 dateadd() Dateadd() 語法 Dateadd(datepart, number, date) ...