数据库系列之查询(2)
字符串函数
1 LEN 返回指定字符串的字符个数(而不是字节),其中不包含尾随空格
SELECT LEN('李丽然作者') --返回:5
SELECT UPPER('book图书表') --返回:BOOK图书表
SELECT LTRIM(' Authors') --返回: Authors
SELECT CHARINDEX('L', 'HELLO', 1) --返回:3
SELECT LEFT('zhangsan', 2) --返回:zh
SELECT DATALENGTH('中国人') --返回:6
SELECT REPLACE('我爱我的家乡家乡', '家乡', '学校') --返回: 我爱我的学校学校
SELECT SUBSTRING('我爱我的家乡',3, 2) --返回:我的
数学函数
1 ABS 返回表达式绝对值
SELECT ABS(-90) --返回:90
SELECT ROUND(56.629, 2) --返回:56.630
SELECT SQRT(9) --返回:3
SELECT FLOOR(23.9) --返回: 23
SELECT CEILING(23.9) --返回:24
时间函数
1 GETDATE 得到当前系统日期
SELECT GETDATE() --返回:系统当前日期
SELECT DATEPART(dd, '01/09/2003') --返回:9
SELECT DATEADD(yyyy, 4, '01/09/2003') --返回:2007-01-09
SELECT DATEDIFF(dd, '02/05/2003', '02/09/2005') --返回:735
SELECT DATENAME(dw, '02/02/2009') --返回: 星期一
SELECT YEAR(GETDATE()) --返回:当前年份整数
SELECT MONTH(GETDATE()) --返回:当前月份整数
SELECT DAY(GETDATE()) --返回:当前日期整数
转换函数
CONVERT 数据类型转换:将第2个参数转换为第一个参数所指定的类型。
SELECT CONVERT(DateTime, '2020-09-09')
返回: 2020-09-09 00:00:00.000
SELECT CONVERT(varchar(11), GETDATE(), 121)
返回:2010-03-24
常用日期格式:
121:日期格式为 yyyy-mm-dd hh:mi:ss.mmm
111:日期格式为 yy/mm/dd
SELECT CONVERT(varchar(5), 92.89)
返回:92.89
聚合函数
1、SUM
SELECT SUM(Upoint) as 总积分 FROM Customers
SELECT AVG(upoint) as 平均积分 FROM Customers
SELECT MAX(upoint) as 最高积分, MIN(upoint) as 最低积分 FROM Customers --MAX和MIN除了计算数值列,还可以用于计算字符型以及日期时间类型数据列 SELECT MAX(Birthday) as 最大日期 FROM Customers
返回结果集的非空行数。
其中“表达式”可以是“*”,“列名”。
(1)COUNT(*):返回表中所有数据行的记录数。
(2)COUNT(列名):返回指定列非空值个数。
示例
SELECT COUNT(*) as 人数 FROM Customers WHERE upoint >300 SELECT COUNT(Address) as 个数 FROM Customers
Case函数
Case具有两种格式。简单Case函数和Case搜索函数。
1 简单case函数
case sex when '1' then '男' when '2' then '女' else '其他' end
case when sex = '1' then '男' when sex = '2' then '女' else '其他' end