SQL server 高级查询语句

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

SQL server 高级查询语句_第1张图片
要求显示表中所有运维工程师的姓名和基本工资:使用字符串拼接
执行命令如下:

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 职务

你可能感兴趣的:(SQL,server)