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

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

平均分: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 ‘字符串类型的值‘+ convert (字段名 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 表名称)

时间: 2024-10-07 05:30:06

五种函数、子查询及分页查询思路的相关文章

时间日期函数,类型转化,子查询,分页查询

1.时间日期函数: SET DATEFIRST 1 --设置星期一为第一天--datepart函数,返回时间日期中的某一个部分--参数1是指返回哪一个部分,dw表示dayofweek--参数2是指哪个时间日期里面去返回--datefirst是系统常量,在使用时需要加上@@SELECT @@DATEFIRST AS '1st Day', DATEPART(dw, GETDATE()) AS 'Today'--getdate指在执行时获取当前系统时间SELECT GETDATE()--在执行时取当前

Spring如何使用4行代码优雅的实现模糊查询,精确查询,分页查询功能。

最近开始使用Spring开发新项目了,开发新项目必定少不了折腾增删查改. 其中模糊查询,精确查询,分页查询也算是不好对付的功能,需要手写大量重复的代码来实现相关的功能,如何优雅的实现查询功能呢? 首先上两张截图.第一张截图是分页列出活动,可以根据活动名称和活动内容进行模糊查询. 举办机构,举办年份,活动分类为可选项.如指定了年份就会检索相应年份的数据. 第二张截图是列出分类. 可以根据分类名称进行模糊查询. 可以发现,两个listData 方法均只有4行代码. 第一行指定模糊查询的列名s,第二行

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

聚合函数:主要是操作列 平均分:avg()格式:select avg(列名) as '自定义列名'from 表名 --单独计算一列的平均分 最大值:max()格式:select max(列名) as '自定义列名'from 表名 最小值:min()格式:select min(列名) as '自定义列名'from 表名 求和:sum()格式:select sum(列名) as '自定义列名'from 表名 数据条数:COUNT(*)格式:select count(*) from 表名 使用:求每种

子查询,分页查询,连接查询

use studentcreate table bumen( bcode int primary key, bname varchar(50), bzhi varchar(50))gocreate table ren( code int identity(1,1), name varchar(50), age int, sex char(10), cid varchar(50), bumen int)goinsert into bumen values(1001,'人事部','负责人员面试考核'

数据库SQL Server2012笔记(四)——多表查询、子查询、分页查询、用查询结果创建新表和外连接

1.多表查询 1)笛卡尔集: select  *  from  表名1,表名2 select  *  from  表名1,表名2  where   表名1.字段名=表名2.字段名 注: 若有两张表有相同名字的字段,则使用时需带表名(别名). order  by  置于where 条件之后. 2)自连接:同一张表的连接查询,将一张表视为两张表或多张表. eg:显示公司每个员工名字和他的上级的名字.将emp表看做两张表worker和boss select  worker.ename  雇员,boss

数据库 子查询和分页查询

在建立子查询时需要建立两个表 如何建立关联 关联需要在创建表结束之后关联, 右击需要关联的表,选择“设计”,出现设计界面(下方右图) 点击添加,然后点击表和列规范,出现“...”选项,点开进行选择 打开界面如下图,设置主键表为bumen 里的bcode 外键表为renyuan 里的bumen  进行查询,子查询,和分页查询 分页查询 根据已有信息确定需要分成几页 在建立关系后,如果添加主键之外的信息,会自动终止语句 1009不在bumen的bcode列,所以终止执行

子查询、分页查询

七.子查询/*含义:出现在其他语句中的select语句,称为子查询或内查询           外部的查询语句,称为主查询或外查询 分类:    按照子查询出现的位置:                select后面:                                 仅仅支持标量子查询                from后面:                                 支持表子查询: 将子查询结果充当一张表,要求必须取别名 where或者having后面

(四)Oracle条件查询,分页查询

1. SQL(基础查询) 1.1基础查询 1.1.1. 使用LIKE条件(模糊查询) 当用户在执行查询时,不能完全确定某些信息的查询条件,或者只知道信息的一部分,可以借助LIKE来实现模糊查询.LIKE需要借助两个通配符: %:表示0到多个字符 _:标识单个字符 这两个通配符可以配合使用,构造灵活的匹配条件.例如查询职员姓名中第二个字符是'A'的员工信息: SELECT ename, job FROM emp WHERE ename LIKE '_A%'; 1.1.2. 使用IN和NOT IN

Linq高级查询与分页查询

Linq高级查询 以~开头: r=>r.Name.StartsWith("李"); 以~结尾: r=>r.Name.EndsWith("光"); 包含(模糊查询): r=>r.Name.Contains("四"); 数据总个数: Con.Goods.Count();||Con.Users.ToList().count; 最大值: Con.Goods.ToList().Max(r=>r.Price); 最小值: Con.Go