--
- 轉小寫 輸出: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元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

