-- - 轉小寫 輸出:abcdef SELECT Lower ( ' aBCDEF ' ); -- - 轉大寫 輸出:ABCDEF SELECT UPPER ( ' ABcdef ' ); -- 去左空格 ->'ABCDEF ' SELECT LTRIM ( ' ABCDEF ' ); -- 去右空格 ->' ABCDEF' SELECT RTRIM ( ' ABCDEF ' ); -- 從左截取字符串 ->abcde SELECT LEFT ( ' abcdefg123456 ' , 5 ); -- 從左截取字符串 ->23456 SELECT RIGHT ( ' abcdefg123456 ' , 5 ); -- - 查詢傳入字符起始位置 為0 SELECT CHARINDEX ( ' a ' , ' ab ' ) -- - 截取字符串 如: 從第三個字符開始截取兩個長度,輸出:cd SELECT SUBSTRING ( ' abcdefghi ' , 3 , 2 ) -- - 替換字符串 輸出:A4CDEFG4AC SELECT REPLACE ( ' ABCDEFGBAC ' , ' B ' , 4 ); -- - 以指定的次數重復字符串值 輸出:ABAB SELECT REPLICATE ( ' AB ' , 2 ) -- - 返回字符串值的逆序 輸出 :FEDCBA SELECT REVERSE ( ' ABCDEF ' ) -- - 數據類型轉換 輸出:13 SELECT CAST ( ' 3 ' as int ) + 10 -- -- 時間:---- -- 獲取現在時間 輸出:2013-03-19 16:17:27.437 select GETDATE (); -- - 獲取日期 select day ( GETDATE ()); -- - 獲取年 select year ( GETDATE ()); -- - 獲取月份 select MONTH ( GETDATE ()); -- - 添加時間 YEAR,DAY,HOUR,MONTH -- 添加時間:輸出 2023-03-19 16:20:06.763 select dateadd ( YEAR , 10 , GETDATE ()); -- - DATENAME (<datepart>, <date>) -- 以字符串的形式返回日期的指定部分此部分。由datepart 來指定。 SELECT DATENAME ( year , GETDATE ()); -- -DATEPART (<datepart>, <date>) -- -以整數值的形式返回日期的指定部分。此部分由datepart 來指定。 SELECT DATEPART (yy, GETDATE ()); -- 相當于 year(getdate()) SELECT DATEPART (mm, GETDATE ()); -- 相當于 month(getdate()) SELECT DATEPART (dd, GETDATE ()); -- 相當于 day(getdate()) SELECT DATEPART (hh, GETDATE ()); -- -- 時間格式化函數 Select CONVERT ( varchar ( 100 ), GETDATE (), 20 ); -- 2013-03-19 16:34:50 Select CONVERT ( varchar ( 100 ), GETDATE (), 23 ); -- 2013-03-19 Select CONVERT ( varchar ( 100 ), GETDATE (), 8 ); -- 16:35:54 -- - DateDIFF 比較時間 輸出:6 SELECT DATEDIFF (hh, ' 2013-03-19 12:34:50 ' , ' 2013-03-19 18:34:50 ' ) -- - 常用 統計函數 /* AVG ( ) -返回的平均價值 count( ) -返回的行數 first( ) -返回第一個值 last( ) -返回最后一個值 max( ) -返回的最大價值 min( ) -返回最小的價值 total( ) -返回的總和 */ -- - row_number select row_number() over ( order by field1) as row_number, * from t_table
?行轉列:
SELECT [ DAY ] , sum ( CASE result WHEN ' 勝 ' then 1 else 0 end ) as 勝, sum ( CASE result WHEN ' 負 ' then 1 else 0 end ) as 負 from test GROUP BY [ day ]
游標:
事務
BEGIN TRAN update Blog set name = name + ' Rhythmk ' where Id = ' 04C65E2C-E604-4295-9F20-0004B72DE0B4 ' select CAST ( ' 107a ' as INT ) if @@error <> 0 BEGIN SELECT ' A ' ROLLBACK TRAN END ELSE BEGIN SELECT ' B ' COMMIT TRAN END
?第二種寫法
BEGIN TRAN UPDATE BlogCate SET name = name + ' Rhythmk ' WHERE Id = ' 04C65E2C-E604-4295-9F20-0004B72DE0B4 ' SELECT CAST ( ' 107 ' AS INT ) BEGIN try SELECT ' B ' COMMIT TRAN END try BEGIN catch SELECT ' A ' ROLLBACK TRAN END catch
?
?
不使用游標 循環執行此處過程:
? 可以先生成臨時表,然后循環取數據
-- -- 不使用游標,循環執行存儲過程 DECLARE @ItemCount INT , @GUID UNIQUEIDENTIFIER SET @ItemCount = 0 SELECT @ItemCount = COUNT ( * ) FROM dbo.data_dict SELECT TOP 1 @GUID = GUID FROM dbo.data_dict WHILE @ItemCount > 0 BEGIN DELETE FROM data_dict WHERE GUID = @GUID -- 執行存儲過程 EXEC PROC_INSERT_A 1 SELECT TOP 1 @GUID = GUID FROM dbo.data_dict SELECT @ItemCount = COUNT ( * ) FROM dbo.data_dict END
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
