五种函数子查询及分页查询思路

Posted 露西&哈特菲利亚

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了五种函数子查询及分页查询思路相关的知识,希望对你有一定的参考价值。

聚合函数:
【加上列名是为了多个放在一起时易于区分!】

平均分:avg()
书写格式:select avg(字段名)as \'函数字段名\' from 表名称

最大值:max()
书写格式:select max(字段名)as \'函数字段名\' from 表名称

最小值:min()
书写格式:select min(字段名)as \'函数字段名\' from 表名称

求和:sum()
书写格式:select sum(字段名)as \'函数字段名\' from 表名称

数据条数:COUNT(*)
书写格式:select 字段名,COUNT(*) from 表名称

使用:求每种系列有多少个,它们的平均价格是多少

PS:
-------------------------------------------------------------
数学函数:

取上限:ceiling()
书写格式:select ceiling(字段名)from 表名称

取下限:floor()
书写格式:select floor(字段名)from 表名称

绝对值:abs()
书写格式:select abs(值)

派,圆周率: PI()
书写格式:

四舍五入:ROUND()
书写格式:select round(要四舍五入的值,要保存的位数)

开根号:SQRT()
书写格式:select sqrt(要开根号的值)

平方根:SQUARE()
书写格式:select square(要开平方的值)

-------------------------------------------------------------
转换函数:

cast(列 as 类型)
书写格式:select \'字符串类型的值\'+ cast(字段名 as 要转换成的数据类型) from 表名称

convert(类型,列)
书写格式:select \'字符串类型的值\'+ convert (要转换成的数据类型,字段名) from 表名称

-------------------------------------------------------------
字符串函数:

转换大写:upper()
书写格式:select upper(值或者字段名)

转换小写:lower()
书写格式:select lower(值或者字段名)

去空格:trim()
书写格式:select ltrim (要去空格的内容) --去左空格
select rtrim (要去空格的内容) --去右空格

左截取:left(值,长度)
书写格式:select left(要截取的内容,要截取的长度)
select right(要截取的内容,要截取的长度)

长度:len()
书写格式:

替换:replace(值,内容,替换内容)
书写格式:select repiace (即将要替换的所有原内容,要替换掉的原内容,要替换进去的新内容)

翻转:reverse()
书写格式:select reverse (要翻转的内容)

字符串转换:str(值,保留位数,小数位数)
书写格式:select str (数值,保留的位数,要保留的数中小数的位数)
【小数点也占一位!】

字符串截取:substring(值,索引,位数)
书写格式:select substring (要截取的内容,开始的索引,截取的长度)
【注意:字符串截取时的索引从1开始!】
PS:
-------------------------------------------------------------
时间日期函数:

获取当前时间:GetDate()
书写格式:select getdate()

获取年月日:year() month() day()
书写格式:select year(字段名),month(字段名)from 表名称

判断日期是否正确:isdate()
书写格式:select isdate (datetime类型的值)

添加时间:dateadd(添加类型,数量,值)
书写格式:select dateadd(添加类型,数量,要加的基数数据)

返回周几:datename(weekday,值)
书写格式:select datename (weekday,datetime数据类型的值)

返回这一天是当月第几天:datename(day,值)
书写格式:select datename (day,datetime数据类型的值)

返回这一天是当年第几天:datename(dayofyear,值)
书写格式:select datename (dayofyear,datetime数据类型的值)
PS:
-------------------------------------------------------------
子查询:
any
select *from 字段名 where 该字段名 >/</>=/<= any
(select 字段名 from 表名称 where 该字段名 in/not in (值,值,、、、,值))

all
select *from 字段名 where 该字段名 >/</>=/<= all
(select 字段名 from 表名称 where 该字段名 in/not in (值,值,、、、,值))


in
select *from 字段名 where 该字段名 in (值,值,、、、、,值)

not in
select *from 字段名 where 该字段名 not in (值,值,、、、、,值)

【注意!子查询中,语句作为参数时,查询出来的数据可以是多行,但必须是同一列!】

查询价格比宝马的任意一款车的价格高的车辆信息
select *from car where price > any
(select price from car where name like \'%宝马%\')
或者写作:
select *from car where price >(select min(price)from car where name like \'%宝马%\')

查询价格比宝马的所有车的价格高的车辆信息
select *from car where price >(select max(price)from car where name like \'%宝马%\')

boss:比宝马的最低价格高的不是宝马的那些车
select *from car where price>
(select min(price)from car where name like \'%宝马%\' )
and code not in
(select code from car where name like \'%宝马%\')

分页查询思路
select top 常量值 *from 表名称 where 字段名 not in(select top 变量公式 字段名 from 表名称)

以上是关于五种函数子查询及分页查询思路的主要内容,如果未能解决你的问题,请参考以下文章

五种函数子查询和分页查询

spring data mongodb Query 及分页

分布式电商项目(04)--商品列表查询及分页

01---SQL数据库学习之创建存储过程及分页查询

linq 大数据 sql 查询及分页优化

SQL Server海量数据库的查询优化及分页算法方案