数据库系列之查询(2)

字符串函数

1 LEN     返回指定字符串的字符个数(而不是字节),其中不包含尾随空格    

SELECT LEN('李丽然作者') 
--返回:5
   2 UPPER     将小写字符转换成大写字符    
SELECT UPPER('book图书表') 
--返回:BOOK图书表
3 LTRIM     返回去掉左侧空格的字符串    
SELECT LTRIM('  Authors') 
--返回: Authors
4 CHARINDEX     查找一个指定的字符串在另一个字符串中的起始位置    
SELECT CHARINDEX('L', 'HELLO', 1) 
--返回:3
5 LEFT     返回字符串中从左边开指定个数的字符    
SELECT LEFT('zhangsan', 2) 
--返回:zh
6 DATALENGTH     返回指定字符串的字节数    
SELECT DATALENGTH('中国人') 
--返回:6
7 REPLACE     替换一个字符串中的字符   

SELECT REPLACE('我爱我的家乡家乡', '家乡', '学校') 
--返回: 我爱我的学校学校
8 SBUSTRING     从字符串串的起始位置连续取指定个数的子串    

SELECT SUBSTRING('我爱我的家乡',3, 2) 
--返回:我的

数学函数

 
1 ABS     返回表达式绝对值    

SELECT ABS(-90) 
--返回:90
2 ROUND     按指定的精度进行四舍五入    

SELECT ROUND(56.629, 2) 
--返回:56.630
3 SQRT     返回指定表达式的平方根    

SELECT SQRT(9) 
--返回:3
4 FLOOR     返回小于或等于指定数值表达式的最大整数    

SELECT FLOOR(23.9) 
--返回: 23
5 CEILING     返回大于或等于指定数值表达式的最小整数    

SELECT CEILING(23.9) 
--返回:24

时间函数

1 GETDATE     得到当前系统日期   

SELECT GETDATE() 
--返回:系统当前日期
  2 DATEPART     返回指定日期部分的整数    

SELECT DATEPART(dd, '01/09/2003') 
--返回:9
3 DATEADD     在指定的日期上累加数值得到新的日期    

SELECT DATEADD(yyyy, 4, '01/09/2003') 
--返回:2007-01-09
4 DATEDIFF     返回两个日期的差值    

SELECT DATEDIFF(dd, '02/05/2003', '02/09/2005') 
--返回:735
5 DATENAME     返回指定日期部分的字符串   

SELECT DATENAME(dw, '02/02/2009') 
--返回: 星期一
6 YEAR     返回指定日期“年”部分整数    

SELECT YEAR(GETDATE()) 
--返回:当前年份整数
7 MONTH     返回指定日期“月”部分整数    

SELECT MONTH(GETDATE()) 
--返回:当前月份整数
8 DAY     返回指定日期“日”部分整数    

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
2、AVG
SELECT AVG(upoint) as 平均积分 FROM Customers
3、MAX和MIN
SELECT MAX(upoint) as 最高积分, MIN(upoint) as 最低积分 FROM Customers
--MAX和MIN除了计算数值列,还可以用于计算字符型以及日期时间类型数据列
SELECT MAX(Birthday) as 最大日期 FROM Customers
4、COUNT(表达式)   
返回结果集的非空行数。
其中“表达式”可以是“*”,“列名”。
    (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
2 case搜索函数
case when sex = '1' then ''
     when sex = '2' then ''
else '其他' end

原文地址:https://www.cnblogs.com/cmhunter/p/4278918.html