数据库SQLServer的函数集合
一.聚合函数:
聚合函数对一组值执行计算并返回单一的值。除了 COUNT 以外,聚合函数忽略空值。聚合函数经常与 SELECT 语句的 GROUP BY 子句一同使用。”
聚合函数的5种:avg()平均值,sum()求和,count()数量,max()最大值,min()最小值
创建了一个表,来做个例子吧:
avg: 加where条件: 加列名:
select Avg(core) from Student3 select Avg(core) from Student3 where Id>10 select Avg(core) as 平均成绩 from Student3 where Id>10
使用所有的聚合函数来看看效果吧
select Avg(core) as 平均成绩,count(core) as 人数,max(core) as 最高分, min(core) as 最高分,sum(core) as 总分 from Student3 where Id>10
+条件 group by:分组
select classes as 班级, Avg(core) as 平均成绩 from Student3 group by classes
+条件 order by:可以把分好组的排序
select classes as 班级, Avg(core) as 平均成绩 from Student3 group by classes order by Avg(core)
+条件 having: 把统计出来的数据再删选
select classes as 班级, Avg(core) as 平均成绩 from Student3 group by classes having Avg(core)>60
聚合函数还有一个筛选的条件是 case when 有兴趣的可以了解一下接下来的 select case when 的用法
Case具有两种格式,简单Case函数和Case搜索函数。
1.简单case函数 +order by 2.Case搜索函数
select Name,classes,core, select Name,classes,core,
case classes case
when 1 then '一班' when core >60 then '没有及格,继续努力'
when 2 then '二班' when core >80 then '你很优秀,不要骄傲'
else '三班' else '及格'
end as '班级' end as '说明'
from Student3 order by classes from Student3
3.case 搜索函数+group by
4.case 搜索函数+having
二:转型函数:
1.convert:convert (类型,列名)
select convert (nvarchar(4),Name) as '名字',classes from Student3
select convert (nvarchar(2),Name) as '名字',classes from Student3
2.cast:cast ( 列名as 类型)
select cast ( Name as nvarchar(4)) as '名字',classes from Student3
select cast ( Name as nvarchar(2)) as '名字',classes from Student3
三.日期函数:
1.GETDATE()
2.DATEADD(日期部分,number,date) 3.DATEDIFF(日期部分,date1,date2)
select GETDATE(); select DATEADD(dd, 5, getdate()) select DATEDIFF(mm,'2010-2-15','2019-02-17')
当前的系统日期 加几天后的时间 日期之间差的月份
4.select DATENAME(dw,GETDATE()) 返回星期
5.select DATEPART(dw,GETDATE()) 返回一周的第几天
6.select YEAR(GETDATE()) 返回年份
7.select MONTH(GETDATE()) 返回月份
8.select DAY(GETDATE()) 返回日期
下面的是别人整理好的,我拿过来用了声明地址连接:https://blog.csdn.net/sundna/article/details/89926586
四.数字函数:
对数字值执行代数运算。
- ABS(num_expr) 返回数值表达式的绝对值。
- ACOS(float_expr) 返回角(以弧度表示),它的余弦值近似于指定的浮点表达式。
- ASIN(float_expr) 返回角(以弧度表示),它的正弦值近似于指定的浮点表达式。
- ATAN(float_expr) 返回角(以弧度表示),它的正切值近似于指定的浮点表达式。
- ATN2(float_expr1, float_expr2) 返回角(以弧度表示),它的正切值在两个近似的浮点表达式之间。
- CEILING(num_expr) 返回大于或等于数值表达式的最小整数。
- COS(float_expr) 返回以浮点表达式表示的近似于指定角度(以弧度表示)的余弦三角函数的值。
- COT(float_expr) 返回以浮点表达式表示的近似于指定角度(以弧度表示)的余切三角函数的值。
- DEGREES(num_expr)返回数值表达式表示的弧度值对应的度值。
- EXP(float_expr) 根据指定的近似浮点表达式,返回指数值。
- FLOOR(num_expr) 返回小于或等于数值表达式的最大整数
- LOG(float_expr) 根据指定的近似浮点表达式,返回自然对数值。
- LOG10(float_expr) 根据指定的近似浮点表达式,返回以为底的对数。
- PI() 返回常量值.141592653589793
- POWER(num_expr,y) 返回幂为y的数值表达式的值。
- RADIANS(num_expr) 返回数值表达式表示的度值对应的弧度值。
- RAND([seed]) 随机返回的到之间的近似浮点值,可以对seed指定为整数表达式(可选)。
- ROUND(num_expr,length) 对数值表达式截取指定的整数长度,返回四舍五入后的值。
- SIGN(num_expr) 对正数执行+1操作,对负数和零执行-1操作。
- SIN(float_expr) 返回以浮点表达式表示的近似于指定角度(以弧度表示)的正弦三角函数的值。
- SQUARE(float_expr) 返回浮点表达式的平均值。
- SQRT(float_expr) 返回指定的近似浮点表达式的平方根。
- TAN(float_expr) 返回以浮点表达式表示的近似于指定角度(以弧度表示)的正切三角函数的值。
五. 字符串函数:
用于返回元数据或配置设置。
- COALESCE(expr1,expr2, xprN) 返回第一个非NULL表达式。
- COL_LENGTH('table_name','column_name') 返回列的长度。
- COL_NAME(table_id,column_id) 返回指定的表中的列名。
- DATALENGTH('expr') 返回任何数据类型的实际长度。
- DB_ID([‘database_name']) 返回数据库的标识号。
- DB_NAME([database_id]) 返回数据库的名称。
- GETANSINULL([‘database_name']) 返回数据库的默认空性(Nullability)。
- HOST_ID() 返回工作站的标识号。
- HOST_NAME() 返回工作站的名称。
- IDENT_INCR('table_or_view') 有新的记录添加入到表中时计数加。
- IDENT_SEED('table_or_view') 返回标识列的起始编号。
- INDEX_COL('table_name',index_id,key_id) 返回索引的列名。
- ISNULL(expr,value) 使用指定的值替换的NULL表达式。
- NULLIF(expr1,expr2) Expr1与Expr2相等时,返回Null。
- OBJECT_ID('obj_name') 返回数据库对象标识号。
- OBJECT_NAME('object_id') 返回数据库对象名。
- STATS_DATE(table_id,index_id) 返回上次更新指定索引的统计的日期。
- SUSER_SID([‘login_name']) 返回用户的登录标识号。
- SUSER_ID([‘login_name']) 返回用户的登录标识号。这个函数类似于SUSER_SID()函数,并且保留了向后的兼容性。
- SUSER_SNAME([server_user_id]) 返回用户的登录标识号。
- SUSER_NAME([server_user_id]) 返回用户的登录标识号。这个函数类似于SUSER_SNAME()函数,并且保留了向后的兼容性。
- USER_ID('user_name') 返回用户的数据库标识号。
- USER_NAME(['user_id']) 返回用户的数据库名称。
六.系统函数:
用于返回元数据或配置设置
- COALESCE(expr1,expr2, xprN) 返回第一个非NULL表达式。
- COL_LENGTH('table_name','column_name') 返回列的长度。
- COL_NAME(table_id,column_id) 返回指定的表中的列名。
- DATALENGTH('expr') 返回任何数据类型的实际长度。
- DB_ID([‘database_name']) 返回数据库的标识号。
- DB_NAME([database_id]) 返回数据库的名称。
- GETANSINULL([‘database_name']) 返回数据库的默认空性(Nullability)。
- HOST_ID() 返回工作站的标识号。
- HOST_NAME() 返回工作站的名称。
- IDENT_INCR('table_or_view') 有新的记录添加入到表中时计数加。
- IDENT_SEED('table_or_view') 返回标识列的起始编号。
- INDEX_COL('table_name',index_id,key_id) 返回索引的列名。
- ISNULL(expr,value) 使用指定的值替换的NULL表达式。
- NULLIF(expr1,expr2) Expr1与Expr2相等时,返回Null。
- OBJECT_ID('obj_name') 返回数据库对象标识号。
- OBJECT_NAME('object_id') 返回数据库对象名。
- STATS_DATE(table_id,index_id) 返回上次更新指定索引的统计的日期。
- SUSER_SID([‘login_name']) 返回用户的登录标识号。
- SUSER_ID([‘login_name']) 返回用户的登录标识号。这个函数类似于SUSER_SID()函数,并且保留了向后的兼容性。
- SUSER_SNAME([server_user_id]) 返回用户的登录标识号。
- SUSER_NAME([server_user_id]) 返回用户的登录标识号。这个函数类似于SUSER_SNAME()函数,并且保留了向后的兼容性。
- USER_ID('user_name') 返回用户的数据库标识号。
- USER_NAME(['user_id']) 返回用户的数据库名称。
七.文本和图像函数
通常返回有关文本和图像数据所需的信息。文本和图像数据是以二进制格式的形式进行存储的。
- TEXTPTR(col_name) 返回varbinary格式的文本指针值。对文本指针进行检查以确保它指向第一个文本页。
- TEXTVALID('table_name.col_name',text_ptr)检查给定的文本指针是否有效。返回表示有效,返回表示指针无效。