【SQL Server】常見系統函式

陆陆无为而治者發表於2024-07-22

字串函式

分類 函式 說明
長度分析 datalength(Char_expr)
回字串包含字元數,但不包含後面的空格
substring(expression,start,length)
取子串
right(char_expr,int_expr)
返回字串右邊int_expr個字元
left(char_expr,int_expr)
返回字串左邊int_expr個字元
字元操作類 upper(char_expr)
轉大寫
lower(char_expr)
轉小寫
space(int_expr)
生成int_expr個空格
replicate(char_expr,int_expr)
複製字串int_expr次
reverse(char_expr)
反轉字串
stuff(char_expr1,start,length,char_expr2)
將字串char_expr1中的從start開始的length個字元用char_expr2代替
ltrim(char_expr)
去掉左側空格
rtrim(char_expr)
去掉右側空格
ascii(char)
取字元的ASCII碼
char(ascii)
根據ASCII碼取字元
字串查詢 charindex(char_expr,expression)
返回char_expr的起始位置
patindex("%pattern%",expression)
否則為0

數學函式

函式 說明
abs(numeric_expr)
求絕對值
ceiling(numeric_expr)
取大於等於指定值的最小整數(即向上取整)
floor(numeric_expr)
小於等於指定值得最大整數(即向下取整)
avg(numeric_expr)
取平均數
exp(float_expr)
返回e的n次方
pi()
圓周率π
power(底數m,指數n)
返回m的n次方
rand([int_expr])
隨機數產生器
round(numeric_expr,int_expr)
按照int_expr規定的精度四捨五入
sign(int_expr)
根據正數,零,負數,返回+1,0,-1
sqrt(float_expr)
返回平方根

日期時間函式

函式 說明
getdate()
返回日期
datename(datepart,date_expr)
返回名稱如 June
datepart(datepart,date_expr)
datepart(datepart,date_expr)
datediff(datepart,date_expr1.dateexpr2)
日期差
dateadd(datepart,number,date_expr)
返回日期加上 number 。datepart的
寫法 取值和意義如右側

yy 1753-9999 年份
qq 1-4 刻
mm 1-12 月
dy 1-366 日
dd 1-31 日
wk 1-54 周
dw 1-7 周幾
hh 0-23 小時
mi 0-59 分鐘
ss 0-59 秒
ms 0-999 毫秒
convert()
日期轉換

系統其他函式

函式 說明
suser_name()
使用者登入名
user_name()
使用者在資料庫中的名字
show_role()
對當前使用者起作用的規則
db_name()
資料庫名
object_name(obj_id)
資料庫物件名
col_name(obj_id,col_id)
列名
col_length(objname,colname)
列長度
valid_name(char_expr)
是否是有效識別符號

型別轉換函式

函式 說明
convert (資料型別[(長度)],表示式[,樣式])
將一種資料型別的表示式顯式轉換為另一種資料型別的表示式;
長度:如果資料型別允許設定長度,可以設定長度,例如 varchar(10);
樣式:用於將日期型別資料轉換為字元資料型別的日期格式的樣式
cast (表示式 AS 資料型別[(長度)])
將一種資料型別的表示式顯式轉換為另一種資料型別的表示式。
例如:select cast(123 as nvarchar) 返回123
select N'年齡:' + cast(23 as nvarchar) 返回 年齡:23

系統函式

函式 說明 例子
newid 無引數
返回一個GUID(全域性唯一表示符)值

select newid()

返回:2E6861EF-F4DB-4FFE-86EB-637482FE982J2

isnumeric (任意表示式)
判斷表示式是否為數值型別或者是否可以轉換成數值。
isnull (任意表示式1,任意表示式2)
如果任意表示式1不為NULL,則返回它的值;否則,在將任意表示式2的型別轉換為任意表示式1的型別(如果這兩個類
型不同)後,返回任意表示式2的值。
isdate (任意表示式)
確定輸入表示式是否為有效日期或可轉成有效的日期

排名函式

函式 說明
row_number 無引數
為結果集內每一行進行編號,從1開始後面行依次加1,常用於產生序號;

聚合函式

函式 說明
count()
返回組中的總條數,count(*)返回組中所有條數,包括NULL值和重複值項,如果抒寫表示式,則忽略空值,表示式為
任意表示式
max()
返回組中的最大值,空值將被忽略,表示式為數值表示式,字串表示式,日期
min()
返回組中的最小值,空值將被忽略,表示式為數值表示式,字串表示式,日期
sum()
返回組中所有值的和,空值將被忽略,表示式為資料表示式
avg()
返回組中所有值的平均值,空值將被忽略,表示式為資料表示式

相關文章