先按年龄降序排列

聚合函数 count,max,min,avg,sum… select count (*) from T_Employee
select Max(FSalary) from T_Employee

排序 ASC升序 DESC降序 select * from T_Employee order by Fage

先按年龄降序排列。倘若年龄雷同,则按薪给升序排列 select * from
T_Employee order by FAge DESC,FSalary ASC

order by 要放在 where 子句之后

通配符过滤 通配符过滤用like 单字符通配符_’ 多字符通配符%’ select *
from T_Employee where FName like ‘_erry’

NULL 是不通晓的情趣,而不是未曾

SQL ISNULL(State of Qatar、NVL(卡塔尔(قطر‎、IFNULL(卡塔尔 和 COALESCE(卡塔尔国 函数请看下边包车型客车 Products 表:

P_Id ProductName UnitPrice UnitsInStock UnitsOnOrder 1 computer 699 25
15 2 printer 365 36 3 telephone 280 159 57

万一 UnitsOnOrder 是可选的,何况能够饱含 NULL 值。

咱俩使用如下 SELECT 语句:

SELECT ProductName,UnitPrice*(UnitsInStock+UnitsOnOrder卡塔尔国FROM
Products在上边的事例中,固然有 UnitsOnOrder 值是 NULL,那么结果是 NULL。

微软的 ISNULL(卡塔尔国 函数用于规定何以管理 NULL 值。

NVL(卡塔尔国, IFNULL(卡塔尔国 和 COALESCE(卡塔尔 函数也足以高达相仿的结果。

在这里边,大家期望 NULL 值为 0。

上边,借使 UnitsOnOrder 是 NULL,则不方便人民群众计算,由此一旦值是 NULL 则
ISNULL(卡塔尔 重返 0

用SQL语句询问NULL的数量不可能用=或 而用is NULL也许is not NULL select *
from T_Employee where FName is NULL

in(23,25卡塔尔同期相配五个值。也正是 23 or 25

between 20 and 30 匹配介于20到30之间的数

BETWEEN 操作符在 WHERE
子句中动用,成效是选项介于五个值时期的多寡范围。BETWEEN 操作符操作符
BETWEEN … AND
会接受介于四个值时期的数量范围。那个值能够是数值、文本也许日期。

SQL BETWEEN 语法SELECT column_name(s)FROM table_nameWHERE
column_nameBETWEEN value1 AND value2原始的表 (在实例中央银行使:State of QatarPersons
表:

Id LastName FirstName Address City 1 Adams John Oxford Street London 2
Bush George Fifth Avenue York 3 Carter Thomas Changan Street Beijing 4
Gates Bill Xuanwumen 10 Beijing BETWEEN 操作符实举例需以字母顺序展现介于
亚当斯和 Carter之间的人,请使用下边包车型地铁 SQL:

SELECT * FROM PersonsWHERE LastNameBETWEEN ‘Adams’ AND
‘Carter’结果集:Id LastName FirstName Address City 1 Adams John Oxford
Street London 2 Bush George Fifth Avenue New York

越来越多详细内容请查看:mysql教程-sql.htm”>

group by分组

GROUP BY 语句GROUP BY
语句用于结合合计函数,遵照二个或四个列对结果集实行分组。

SQL GROUP BY 语法SELECT column_name,
aggregate_function(column_name)FROM table_nameWHERE column_name
operator valueGROUP BY column_name

select FAge, count(*) from T_Employee Group by Fage
先把相通的Fage分一组,再总结每一组的个数

group
by子句要放在where子句之后。如若想取某个年龄段人数大于1的,无法用where
count 1 ,因为聚合函数不能够放在where子句之后。要用having子句
Having是对分组后的列举行过滤,能用的列和select中的相仿。如下例中则无法用having
Fsalary2001 只好用where Fsalary二零零一 select FAge, count(*) from
T_Employee Group by FAge having count(*) 1;

界定结果集的节制 select Top 3 * from T_Employee order by FSalary DESC

从第六名初步选3个.二〇〇六后可以用Row_Number函数 select Top 3 * from
T_Employee where FNumber not in(select TOP 5 FNumber from T_Employee
order by FSalary DESC) order by FSalary DESC

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website