SQL语句处理顺序的坑
分类:香港六和开奖现场直播

首先看上边一条比较成功语句,都以相比宽泛的第一字。

USE Temp;

SELECT empid, YEAR(orderdate) AS orderyear, COUNT(*) AS numorders
FROM Sales.Orders
WHERE custid = 71
GROUP BY empid, YEAR(orderdate)
HAVING COUNT(*) > 1
ORDER BY empid, orderyear;

我们来详细深入分析一下sql语句的逻辑管理顺序,固然select在每条语句的第一个人,但实际它是被最后才管理的

1.from  

2.where

3.group by

4.having

5.select

6.order by

7.TOP

在精心剖析各种实施各样代表的情趣 (它的实在顺序)

FROM Sales.Orders
WHERE custid = 71
GROUP BY empid, YEAR(orderdate)
HAVING COUNT(*) > 1
SELECT empid, YEAR(orderdate) AS orderyear, COUNT(*) AS numorders
ORDER BY empid, orderyear;

1.从 Orders 表查询数据

2.基于条件筛选客商ID等于71的

3.对顾客id和订单年度 举办分组

  1. 再选出大于三个订单的组

5.重返查询出的数据 以致你要显得的字段

6.说起底对顾客id 和订单 进行排序

7.输出

输入的键入顺序和拍卖顺序差异样是有来头的,SQL设计员是为了让客户遵照菲律宾语的方法提供温馨的伸手

建议、坑

  1. from 表时  最佳给定 库名和表名  Sales.Orders  让表彰显表示 不用程序检索。
  1. where 子句优良关键  SQL Server 会对where 条件 实行业评比估访谈诉求数据要使用的目录,通过索引能够大大收缩表扫描时间

并且 where 子句检索 完成后  它回到的是研究结果为True的行  ,但从来牢记, SQL 数据库使用三值谓词逻辑,也正是说有七个结实。

True,False 或 UNKNOWN ,  重回true 行 并分歧不回来False  实际上是不回来 False 行 和 UNKNOWN 行 以往会再博客中特意讲NULL。

3.记住除count(*)之外,  聚合函数都以忽视NULL标识  假若有一组数据“1,1,3,4,5,null”列名称叫qty   表明式Count(*) 重返的是6 可是Count(qty)

是5  count中加以显示值 就能够暗中认可寻觅已知值  也得以  count(distinct qty ) 重临的是4 去重新  那么些 能够用来 管理  重返各样不重复总计难题很方便 它和 select distinct 有比异常的大质量分裂 现在会细讲 也足以 sum(distinct qty ) 是13 也是用作总括不另行数据。

4.因为 group by 属于行管理 在having 先计算机技艺商量所以having 中能够出现  聚合函数 。

5.像上边的 “YEAPRADO(orderdate)” SQL Server 只对它运维二回  能辨识查询中重复使用的同等表明式

6.最棒别使用 select * 固然你要查询 全部字段。

7.行使 order by 对有多量双重的字段实行排序是无用的  比如对日期实行排序 那样三个排序选10条 会有七个被认为是对的结果 所以大家要力保排序字段的数据独一性, 以至在 select distinct  时 排序 会导致 单个结果对应八个源数据行。

 

本文由六和开奖现场发布于香港六和开奖现场直播,转载请注明出处:SQL语句处理顺序的坑

上一篇:开窗函数 下一篇:没有了
猜你喜欢
热门排行
精彩图文