總結一下平時用到最多的sql語句sql
1 --今天凌晨 2 SELECT DATEADD(dd,DATEDIFF(dd,0,GETDATE()),0) 3 --明天凌晨 4 SELECT DATEADD(dd,DATEDIFF(dd,0,GETDATE())+1,0) 5 --當週週一(每週從週日開始) 6 SELECT DATEADD(wk,DATEDIFF(wk,0,GETDATE()),0) 7 --當月的第一天 8 SELECT DATEADD(mm,DATEDIFF(mm,0,GETDATE()),0) 9 --當月的最後一天 10 SELECT DATEADD(dd,-1,DATEADD(mm,DATEDIFF(mm,0,GETDATE())+1,0)) 11 --今年的第一天 12 SELECT DATEADD(yy,DATEDIFF(yy,0,GETDATE()),0) 13 --今年的最後一天 14 SELECT DATEADD(dd,-1,DATEADD(yy,DATEDIFF(yy,0,GETDATE())+1,0))
1 --去除空格 2 SELECT LTRIM(col1),RTRIM(col2),LTRIM(RTRIM(col3)) FROM tableName 3 4 SELECT 5 SUBSTRING(col1,3,2) --從第3個字符開始截取2個,獲得截取的2個字符 6 ,STUFF(col2,3,2,'')--從第3個字符開始刪除2個,獲得剩下字符 7 ,STUFF(col3,3,2,'XXX')--從第3個字符開始,將第三、4兩個字符替換成XXX 8 ,REPLACE(col4,'old','new')--將col4中的old所有替換成new 9 FROM tableName 10 11 12 --將列col1用,拼接起來 13 SELECT STUFF((SELECT ','+col1 FROM tableName WHERE 過濾條件 FOR XML PATH('')),1,1,'') 14 15 16 --多位流水號,用0或空格補充 例如A000001,A000002……,前綴可爲固定字符,或者可變的年、月、日等 17 DECLARE @flowNo AS VARCHAR(10) 18 DECLARE @nextNo AS int 19 20 SELECT @flowNo = MAX(flowNo) FROM tableName WHERE 過濾條件 21 IF(@flowNo IS null) 22 SET @flowNo = 'A000001' 23 ELSE 24 BEGIN 25 SET @nextNo = RIGHT(@flowNo,6)+1 26 SET @flowNo = LEFT(@flowNo,1)+REPLICATE('0',6-LEN(@nextNo))+CONVERT(VARCHAR(6),@nextNo) 27 END 28 SELECT @flowNo;--要獲取的流水號 29 30 31 32 --年 2001對應1,2009對應9,2010對應A,2035對應Z,2035以後的可自行調整 33 SELECT SUBSTRING('123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',(YEAR(GETDATE())-2000)%36,1) 34 35 --月 10月,11月,12月分別對應A,B,C 36 SELECT SUBSTRING('123456789ABC',MONTH(GETDATE()),1) 37 38 --月 英文簡寫 39 SELECT SUBSTRING('JanFebMarAprMayJunJulAugSepOctNovDec',(MONTH(GETDATE())-1)*3+1,3) 40 41 --日 1號對應1,9號對應9,10號對應A,以此類推 42 SELECT SUBSTRING('123456789ABCDEFGHIJKLMNOPQRSTUV',DAY(GETDATE()),1)
1 --去除重複數據,數據表中有不少重複數據,若是其中col1,col2,col3,col4,col5能夠表示出每一組重複數據 2 ;WITH cte AS 3 (SELECT col1,col2,col3,col4,col5 4 ,ROW_NUMBER()OVER(PARTITION BY col1,col2,col3,col4,col5 ORDER BY col1) AS rn 5 FROM tableName) 6 DELETE FROM cte WHERE rn > 1 7 8 9 --快速打開存儲過程、視圖等 10 sp_helptext 存儲過程名稱 --名稱前不要加dbo.等全部者 11 sp_helptext 視圖名稱 --名稱前不要加dbo.等全部者 12 13 14 --用到了某些字符串的視圖,存儲過程 15 SELECT a.name,b.[text] 16 FROM sysobjects a 17 INNER JOIN syscomments b ON a.id = b.id 18 WHERE b.[text] LIKE '%你要查的字符串%' 19 AND a.xtype='v'--'p' 20 21 22 --獲取表tableName中全部的列名,並用組合。寫insert的時候簡直不要太爽 23 SELECT STUFF((SELECT ','+name 24 FROM syscolumns 25 WHERE id = OBJECT_ID('tableName') 26 ORDER BY colorder --colorder:按照列的添加順序 name:按照列名順序 27 FOR xml path('')),1,1,'')