//一、生成隨機數 ROUND(((89 - 71 -1) * RAND() + 71), 0) DECLARE @Result INT DECLARE @Upper INT DECLARE @Lower INT SET @Lower = 1 SET @Upper = 10 SELECT @Result = ROUND(((@Upper - @Lower -1) * RAND() + @Lower), 0) SELECT @Result //二、字段爲空,輸出默認值 isnull(wj.wjsum,0) as wjsum//數字 isnull(wj.wjsum,'無') as wjsum//字符 //三、GROUP BY 中Count SELECT TOP 100 PERCENT wjs_scid,COUNT (wjs_scid) AS scidsum FROM [dbo].[wj_selectresult_wj] WHERE wjs_id = 28 GROUP BY wjs_id,wjs_cid,wjs_scid //視圖或多表查詢用到TOP 100 PERCENT //由於SQL規則規定,若是子查詢裏,有order ...,就必須有TOP,因此就用SELECT TOP 100 PERCENT來限定 SELECT wjs_scid,COUNT (DISTINCT operator_id) AS scidsum FROM [dbo].[wj_selectresult_wj] WHERE wjs_id = 28 GROUP BY wjs_scid ;//分組 去重複 計數 //四、固定輸出列 SELECT wjc.*, scidsum,wjsperc=0,wjpsum='0' FROM [dbo].[wjcontent_wj] //5查詢多字段重複 select group_id,app_id,operator_id from app_messages group by group_id,app_id,operator_id having count(*) > 1 //6 日期+- select DateAdd(month,-1,DateAdd(dd,-1, DateAdd(yy,5,'2017-08-04'))) //+5年 -天 -一個月 //7 petapoco 分頁 SELECT COUNT (*) FROM Sys_User u LEFT JOIN Sys_Organize o ON u.DepartmentId = o.Id WHERE ( u.DeleteMark = 0 AND u.Account LIKE @0 OR u.RealName LIKE @1 ) SELECT * FROM ( SELECT ROW_NUMBER () OVER (ORDER BY u.SortCode) peta_rn, u.*, o.FullName FROM Sys_User u LEFT JOIN Sys_Organize o ON u.DepartmentId = o.Id WHERE ( u.DeleteMark = 0 AND u.Account LIKE @0 OR u.RealName LIKE @1 ) ) peta_paged WHERE peta_rn > @2 AND peta_rn <= @3 //字符串in 操做 charindex mysql 用instr 不太好用,不推薦使用,請用 轉int 方式 SELECT Id, Name, ParentId FROM HR_PostWorkType WHERE 1 = 1 AND charindex(PostId,'9,10,0') <> 0 ORDER BY SortCode ASC //按生日獲得當前年齡 SELECT dbo.HR_Person.RealName as 姓名,Gender_Name as 性別,FLOOR(datediff(DY,Birthday,getdate())/365.25) as 年齡,dbo.HR_Person.CardNum as 身份證號,dbo.HR_Person.Org_Name as 單位,MobilePhone as 聯繫電話,Address as 地址 FROM [dbo].[HR_Person] WHERE --備份mssql數據庫 declare @strfile nvarchar(1000) SET @strfile ='D:\DB\DDPT\edu_dudao'+CONVERT(varchar(100), GETDATE(), 12)+'.bak' declare @strName nvarchar(1000) SET @strName ='edu_dudao'+CONVERT(varchar(100), GETDATE(), 12) BACKUP DATABASE [edu_dudao] TO DISK = @strfile WITH NAME = @strName, NOFORMAT, NOINIT, SKIP, STATS = 5 --按月份統計數量 SELECT YEAR (HR_WorkRecord.StartTime) 年,MONTH (HR_WorkRecord.StartTime) 月, COUNT (1) 數量 FROM HR_WorkRecord WHERE year(HR_WorkRecord.StartTime)='2018' GROUP BY YEAR (HR_WorkRecord.StartTime) , MONTH (HR_WorkRecord.StartTime) select sum(case month(HR_WorkRecord.StartTime) when '1' then 1 else 0 end) as 一月, sum(case month(HR_WorkRecord.StartTime) when '2' then 1 else 0 end) as 二月, sum(case month(HR_WorkRecord.StartTime) when '3' then 1 else 0 end) as 三月, sum(case month(HR_WorkRecord.StartTime) when '4' then 1 else 0 end) as 四月, sum(case month(HR_WorkRecord.StartTime) when '5' then 1 else 0 end) as 五月, sum(case month(HR_WorkRecord.StartTime) when '6' then 1 else 0 end) as 六月, sum(case month(HR_WorkRecord.StartTime) when '7' then 1 else 0 end) as 七月, sum(case month(HR_WorkRecord.StartTime) when '8' then 1 else 0 end) as 八月, sum(case month(HR_WorkRecord.StartTime) when '9' then 1 else 0 end) as 九月, sum(case month(HR_WorkRecord.StartTime) when '10' then 1 else 0 end) as 十月, sum(case month(HR_WorkRecord.StartTime) when '11' then 1 else 0 end) as 十一月, sum(case month(HR_WorkRecord.StartTime) when '12' then 1 else 0 end) as 十二月 from HR_WorkRecord where year(HR_WorkRecord.StartTime)='2018'; --統計銷售額 一、每一年 select year(ordertime) 年, sum(Total) 銷售合計 from 訂單表 group by year(ordertime) 二、每個月 select year(ordertime) 年, month(ordertime) 月, sum(Total) 銷售合計 from 訂單表 group by year(ordertime), month(ordertime 三、每日 select year(ordertime) 年, month(ordertime) 月, day(ordertime) 日, sum(Total) 銷售合計 from 訂單表 group by year(ordertime), month(ordertime), day(ordertime) 另外每日也能夠這樣: select convert(char(8),ordertime,112) dt, sum(Total) 銷售合計 from 訂單表 group by convert(char(8),ordertime,112) 若是須要增長查詢條件,在from後加where 便可。