SQL函数

这篇博客全面介绍了SQL中的各种函数,包括字符串函数的长度与分析、字符操作和查找,数学函数,日期函数及其datepart参数,系统其他和类型转换函数,以及重点讲解了排名函数如over()与分析函数的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SQL函数

一、字符串函数

Ⅰ. 长度与分析
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

二、数学函数

trunc(45.9231) --按指定精度截断十进制数,结果:45.9 ,此为oracle函数。
mod(1600,300) --求除法余数 ,结果:100。
abs(numeric_expr) --求绝对值。
ceiling(numeric_expr) --取大于等于指定值的最小整数(即向上取整)。
floor(numeric_expr) --小于等于指定值得最大整数(即向下取整)。
avg(numeric_expr)--取平均数。
exp(float_expr) --返回e的n次方。
pi() --3.1415926.........(即圆周率π)。
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( ) --返回系统目前的日期与时间
DateDiff (datepart,date1,date2) --返回date2 与date1两个日期之间的差值 date2-date1
DateAdd (datepart,number,date)  --返回日期加上number
DatePart (datepart,date) --返回日期date中,datepart指定部分所对应的整数值
DateName (datepart,date) --返回日期date中,datepart指定部分所对应的字符串名称
datepart参数的设定值
缩写Access 和 ASP说明
YearYyyyyy年 1753 ~ 9999
QuarterQqq季 1 ~ 4
MonthMmm月1 ~ 12
Day of yearDyy一年的日数,一年中的第几日 1-366
DayDdd日,1-31
WeekdayDww一周的日数,一周中的第几日 1-7
WeekWkww周,一年中的第几周 0 ~ 51
HourHhh时0 ~ 23
MinuteMin分钟0 ~ 59
SecondSss秒 0 ~ 59
MillisecondMs-毫秒 0 ~ 999

四、系统其他函数

suser_name() --用户登录名
user_name() --用户在数据库中的名字
user --用户在数据库中的名字
show_role() --对当前用户起作用的规则
db_name() --数据库名
object_name(obj_id) --数据库对象名
col_name(obj_id,col_id) --列名
col_length(objname,colname) --列长度
valid_name(char_expr) --是否是有效标识符

五、类型转换函数

convert(data_type,expression[,style]) --将一种数据类型的表达式显式转换为另一种数据类型的表达式
--data_type 目标系统所提供的数据类型,如果没设置数据长度,默认为30
--expression:要处理的值,可以是任何有效的SQL Server表达式
--style:【可选参数】日期格式样式

str( float_expression [ length [ decimal ] ] --将数字数据转换为字符数据,返回值为char类型
--float_expression 要转换的数字数据
--length 转换完的数据长度,默认为10位
--decimal 小数点右边的位数

cast (expression AS data_type) --将一种数据类型的表达式显式转换为另一种数据类型的表达式
--expression 要处理的数据,可以是任何有效的SQL Server表达式
--AS 用于分隔两个参数
--data_type 目标系统所提供的数据类型,如果没设置数据长度,默认为30

六、系统函数

newid() --返回一个GUID(全局唯一表示符)值

isnumeric(expression) 
--传入任意表达式,判断表达式是否为数值类型或者是否可以转换成数值;是返回1,不是返回0

isnull(check_expression , replacement_value)
--check_expression 将被检查是否为NULL的表达式
--replacement_value 当check_expression为NULL时返回的值,必须与check_expression为同一类型

七. 排名函数

over()

开窗函数,按照class分区

over不能单独使用,要和分析函数:rank(),dense_rank(),row_number()等一起使用。

select ROW_NUMBER() OVER(partition by column1 order by column2) ROW_INDEX from Room
--按column1指定的字段进行分组排序,或者说按字段column2的值进行分组排序。
分析函数
ROW_NUMBER() --行号
RANK() --排名,例如1,2,2,4
DENSE_RANK() --密集排名,例如1,2,3,4
NTILE() -- 分组排名;ntile(10)就是分成6等分然后分成六个组并显示所在组的序号

八、排名函数

count() --返回组中的总条数,count(*)返回组中所有条数,包括NULL值和重复值项,如果是任意表达式,则忽略空值
max() --返回组中的最大值,空值将被忽略,表达式为数值表达式,字符串表达式,日期。
min() --返回组中的最小值,空值将被忽略,表达式为数值表达式,字符串表达式,日期。
sum() --返回组中所有值的和,空值将被忽略,表达式为数据表达式。
avg() --返回组中所有值的平均值,空值将被忽略,表达式为数据表达式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值