Home
R
Cancel

[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) ...

[SQL] 格式變換 Convert

--以字串輸出現在的年月日時分秒 select CONVERT(char(19),GETDATE(),120) "現在日期時間" 語法 CONVERT(char, date, 111) --24小時制 2011-12-29 14:06:29 CONVERT(char, date, 123) --年月日 2011/12/29 CONVERT(char, date) --12小時制 12 2...

[SQL] 條件判斷 Case (When Then Else)

SQL的CASE類似程式語言裡的 if-then-else 語句,用來作邏輯判斷。 跟多數程式語言一樣,在寫 SQL 時可以用 IF... ELSE 來寫條件判斷;也跟多數程式語言一樣,除了 IF 之外,也有 CASE 的條件判斷語法。許多程式語言會用 swtich... case ,而在 SQL 則有點不同,會是用 CASE... WHEN。 case可以在select語法中進...

[SQL] Select 1、Select null

Exists 搭配 Select 1、Select null select 1、select unll一般用來當條件使用,比如: exists(select 1 from table) exists(select null from table) select A.負責人ID, A.負責人姓名 from [負責人清單] A where exists (select 1 fr...

[SQL] 檢查資料是否存在 Exists、Not Exists

Exists EXISTS運算子用於判斷查詢子句是否有記錄,如果有一筆或多筆記錄存在回傳 True,否則傳回 False。 (該子查詢實際上並不返回任何數據,而是返回值True或False) EXISTS與IN的使用效率的問題,通常採用exists要比in效率高,因為IN不走索引,但要看實際情況具體使用: 當內表小外表大時,EXISTS的效率< in的效率; ...

[SQL] SQL中AVG()、COUNT()、SUM()、MAX()等函數對NULL值處理

Avg() 求平均值 Avg()忽略 Null 值,而不是將其作為0參與計算。 Count() Count(*)、Count(1)、Count(主鍵PK) 對資料表的行數進行計數。(包含NULL) 不管是否有Null Count(欄位名) 對特定列有數據的行進行計數。 (不包含NULL) 忽略 null 值 Sum() 可以對單列求和,也可以對多個列運算後求和。(不包含NU...

[SQL] 取得現在的日期 Getdate()

select GETDATE() --2023-12-27 00:04:13.627

[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可能存在的效能疑慮(效能差),...