【SQL Server】常见系统函数
字符串函数
分类 | 函数 | 说明 |
长度分析 | 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) |
取日期的一部分 |
|
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() |
返回组中所有值的平均值,空值将被忽略,表达式为数据表达式 |
有志者,事竟成,破釜沉舟,百二秦关终属楚; 苦心人,天不负,卧薪尝胆,三千越甲可吞吴。