SQL server 高级查询语句

本文全面介绍了SQL中的各类函数,包括系统函数、字符串函数、日期函数、数学函数和聚合函数。详细解释了每种函数的用途及示例,如convert、upper、getdate、abs等,帮助读者掌握SQL数据操作技巧。

1.系统函数

函数名描述举例
convert()数据类型转换selece convert(varchar(5),12345) 返回:字符串12345
cast()数据类型转换,与convert相比其语法较简单,转换功能相对较少select cast(‘2018-12-4’ as datetime) 返回:字符串2018-12-4 00:00:00.000
current_user()返回当前登陆的数据库用户名select current_user 返回:当前登陆的数据库用户名
datalength()返回用于指定表达式的字节数select datalength(‘中国 a 杭州’) 返回:9 注:一个中文代表2个字节
host_name()返回当前用户所登陆的计算机名称select host_name() 返回:当前登陆的计算机名
system_user()返回当前登陆的系统用户名select system_user 返回:当前登陆的系统用户名
user_name()从给定的用户ID中返回数据库用户名select user_name(1) 返回:从任意数据库中返回"dbo"

2.字符串函数

函数名描述举例
charindex()用来寻找一个指定的字符串在另一个字符串中的起始位置select charindex(‘baidu’,‘www.baidu.www’,1) 返回:5
len()返回传递给它的字符串长度select len(‘SQL server 函数’) 返回:12
upper()把传递给它的字符串转换为大写select upper(‘SQL server 数据库’) 返回:SQL SERVER 数据库
right()从字符串右边返回指定数目的字符select right(‘ABCDEFG’,3) 返回:EFG
replace()替换一个字符串中的字符select replace(‘ABABAB’,‘B’,‘A’) 返回:AAAAAA
stuff()在一个字符串中,删除指定位置指定长度的字符串,并在该位置插入一个新的字符串select stuff(‘ABCDEFG’,2,3,‘我的’) 返回:A我的EFG

3.日期函数

函数名描述举例
getdate()取得当前的系统日期select getdate() 返回:当前日期和时间
dateadd()添加指定的年(YY)、月(MM)、日(DD)select dateadd(MM,4,‘2018-12-4’) 返回:2018-12-4
dateiff()比较两个日期之间的指定日期部分的差select dateiff(YY,‘2000-12-12’,‘2018-12-12’) 返回:17
datename()显式指定日期中特定部分的字符串select datename(DW,‘2017-06-16’) 返回:星期五
datepart()显示日期中指定部分的整数形式select datepart(month,‘2017-06-16’) 返回:6

4.数学函数

函数名描述举例
abs()取数值表达式的绝对值select abs(-43) 返回:43
ceiling()取大于或等于指定数值、表达式的最小整数select ceiling(43.5) 返回:44
floor()取小于或等于指定表达式的最大整数select floor(43.5) 返回:43
power()取数值表达式的幂值select power(5,2) 返回:25
round()将数值表达式四舍五入为指定精度select round(43.543,1) 返回:43.500

在这里插入图片描述
要求显示表中所有运维工程师的姓名和基本工资:使用字符串拼接
执行命令如下:

select '运维工程师'+姓名+的基本工资是:'+cast(基本工资 as varchar(10))+'元'
from 表名
where 职务='运维工程师'

结果为:

运维工程师 杨过 的基本工资是:9000:00元
运维工程师 郭靖 的基本工资是:8000:00元

聚合函数

常用的聚合函数有

函数解释
SUM()总和
AVG ()平均值
MAX ()最高值
MIN ()最低值
COUNT()统计字符

聚合举例:

❶查询表中所有员工基本工资总和⇓(SUM)
select sum(基本工资) as 总工资 from 表名

➋查询表中所用员工的平均基本工资⇓(AVG)
select avg(基本工资) as 平均工资 from 表名

➌查询表中最高和最低的基本工资⇓(MAX、MIN)
select max(基本工资) as 最高工资,min(基本工资) as 最低工资 from 表名

➍查询表中全部行数⇓(COUNT)
select count(*) as 总行数 from 表名

➎查询表中90后员工人数⇓(COUNT)
select count(出生日期) as '90后人数'from 表名 where 出生日期>='1990-01-01


分组查询:

➊查询表中每个职务的平均工资⇓(AVG)
select 职务,avg(基本工资) as 职务平均工资 from 表名 group by 职务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋枫 ~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值