电脑安全

您当前的位置:主页 > 电脑安全 >

sql 聚合函数、排序方法详解-网络编程

来源:[db:来源]标题:   子句    编辑:电脑技术全能网 时间:2019-09-18 16:51

原标题:sql 聚合函数、排序方法详解-网络编程
   聚合函数 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 ASCorder by 要放在 where 子句以后通配符过滤 通配符过滤用like 单字符通配符‘_' 多字符通配符‘%' select * from T_Employee where FName like '_erry'NULL 是不晓得的意义,而不是没有SQL ISNULL()、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 NULLin(23,25)同时婚配两个值。相称于 23 or 25between 20 and 30 婚配介于20到30之间的数BETWEEN 操纵符在 WHERE 子句中应用,感化是拔取介于两个值之间的数据范畴。BETWEEN 操纵符操纵符 BETWEEN ... AND 会拔取介于两个值之间的数据范畴。这些值能够是数值、文本或许日期。SQL BETWEEN 语法SELECT column_name(s)FROM table_nameWHERE column_nameBETWEEN value1 AND value2原始的表 (在实例中应用:)Persons 表:Id LastName FirstName Address City 1 Adams John Oxford Street London 2 Bush George Fifth Avenue www.dnjishu.comNew York 3 Carter Thomas Changan Street Beijing 4 Gates Bill Xuanwumen 10 Beijing BETWEEN 操纵符实例如需以字母次序表现介于 "Adams"(包含)和 "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">http://www.dnjishu.com/database/110/BETWEEN-mysql-sql.htmgroup by分组GROUP BY 语句GROUP BY 语句用于联合共计函数,依据一个或多个列对成果集停止分组。SQL GROUP BY 语法SELECT column_name, aggregate_function(column_name)FROM table_nameWHERE column_name operator valueGROUP BY column_nameselect FAge, count(*) from T_Employee Group by Fage 先把雷同的Fage分一组,再统计每一组的个数group by子句要放在where子句以后。假如想取某个年纪段人数大于1的,不能用where count(*) > 1 ,由于聚合函数不能放在where子句以后。要用having子句 Having是对分组后的列停止过滤,能用的列和select中的一样。以下例中则不能用having Fsalary>2000 只能用where Fsalary>2000 select FAge, count(*) from T_Employee Group by FAge having count(*) > 1;限度成果集的范畴 select Top 3 * from T_Employee order by FSalary DESC从第六名开端选3个.2005后能够用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