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

聚合函数:主要是操作列

平均分:avg()
格式:select avg(列名) as ‘自定义列名‘from 表名 --单独计算一列的平均分

最大值:max()
格式:select max(列名) as ‘自定义列名‘from 表名

最小值:min()
格式:select min(列名) as ‘自定义列名‘from 表名

求和:sum()
格式:select sum(列名) as ‘自定义列名‘from 表名

数据条数:COUNT(*)
格式:select count(*) from 表名

使用:求每种系列有多少个,它们的平均价格是多少
格式:select 列名,count(*) as ‘自定义列名‘,avg ‘自定义列名‘from 表名 group by 列名 --列名是一个,每种系列有多少个

-------------------------------------------------------------
数学函数

取上限:ceiling()
格式:select ceiling(列名) from 表名 --小数点后大于零,就进一位

取下限:floor()
格式:select floor(列名) from

绝对值:abs()
格式:select abs(-5) --select把结果映射到结果框,abs把负值变成正值
print -5 --把结果映射到消息框

派,圆周率: PI()

四舍五入:ROUND()
ps:select roung (pi(),2)--2保留小数点后几位。pi括号不需要放东西,放哪儿就是π

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

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

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

cast(列 as 类型)ps:select ‘油耗‘+cast(oil as nvarchar(50)) from car

convert(类型,列)ps:select 列名+convert(nvarchar(50),oil) from car

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

转换大写:upper()
select upper() from

转换小写:lower()

去空格:trim()--中间的空格去不掉
select ltrim()--去掉左边的空格
select rtrim()--去掉右边空格

左截取:left(值,长度)
select left (‘abcde‘,3)--截取结果abc
右截取:right(值,长度)
select right (‘abcde‘,3)--截取结果cde
字符串截取(值,索引,长度)
select substring (‘abcde‘,2,2)--截取结果bc,索引从1开始

长度:len()
select len(‘abcde‘)--结果5

替换:replace(值,内容,替换内容)
select replace (‘aaaabbaaaa‘,‘bb‘,‘hehe‘)--结果aaaaheheaaaa

翻转:reverse()
select reverse (‘abcde‘)--edcba

字符串转换:str(值,保留位数,小数位数)
select str (3.14,2,1)--结果3。2一共保留两位,小数点算一位
-------------------------------------------------------------
时间日期函数:

获取当前时间:GetDate()
select getdate() --获取当前时间

获取年月日:year() month() day()
select year(列名),month(列名),day(列名)from 表名

判断日期是否正确:isdate()
select isdate(datetime类型)--bool类型,结果1或0

添加时间:dateadd(添加类型,数量,值)
ps:select dateadd(day,2,getdate())

返回周几:datename(weekday,值)
select datename (weekday,getdate())
组合使用:select datename (weekday,dateadd(day,2,getdate()))

返回第几天:datename(day,值):select datename (day,getdate())--返回在这个月中的第几天
datename(dayofyear,值):select datename (dayofyear,getdate())返回在一年中的第几天

-------------------------------------------------------------
子查询:
把sql语句当成一个值来使用:
select 要查询的子级列名 from 子级表名 where 要查询的子级主键列名 = (select 要查询的父级字段名 from 查询的父级字段名所在的表 where 父级主键列=对应值)

in:
select *from 表名 where 列名 in(值,值)--当那一列的值是值其中就行
not in:
select *from 表名 where 列名 not in(值,值)--当那一列的值不在值里面的
any:
select *from 表名 where 列名 >any(select 列名from 表名 where 列名 in(值,值))--any 任何一个,大于任何一个any括号里的值就符合条件
all:
select *from 表名 where 列名 >all(select 列名from 表名 where 列名 in(值,值))--all 所有值都。比所有值都大才符合条件

ps:select *from car where powers >any(select powers(马力)from 表名 where oil(油耗) 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 > all (select 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 5(前5条) *from car where ids not in( select top 页数乘以5 ids from car )

时间: 2024-10-25 07:36:36

五种函数、子查询和分页查询的相关文章

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

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 字段名

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

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