SQL执行顺序
按惯例先上SQL Server查询顺序,小括号()里面的数字代码数据库引擎在执行查询语句时候的先后顺序,从1开始:
(8)SELECT(9)DISTINCT(11)<Top Num><select list>
(1)FROM [left_table]
(3)<join_type>JOIN<right_table>
(2) ON <join_condition>
(4)WHERE <where_condition>
(5)GROUP BY <group_by_list>
(6)WITH <CUBE |RollUP>
(7)HAVING <having_condition>
(10)ORDER BY <order_by_list>
DISTINCT 语句
在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。
关键词 DISTINCT 用于返回唯一不同的值。
DISTINCT语法
SELECT DISTINCT 列名称 FROM 表名称
使用 DISTINCT 关键词
我们先看看Orders表中的数据:
SELECT * FROM Orders;
如果要从 "客户ID" 列中选取所有的值,我们可以使用如下语句
SELECT 客户ID FROM Orders
结果:
如需从 "客户ID" 列中仅选取唯一不同的值,我们需要使用 SELECT DISTINCT 语句:请注意,在结果集中,3 被列出了两次。
SELECT DISTINCT 客户ID FROM Orders
结果:
现在,在结果集中,3 仅被列出了一次。
批注
从上面的例子我们就可以清楚的看到DISTINCT的用法了,就是如果某个字段或某几个字段所对应的记录都重复了,使用它就可以只显示一条记录,它的作用简而言之就是为了去重。具体使用场景一般像我们要查询某张订单表里客户的编号,但是如果这个客户购买了很多产品,那就会产生很多相同的编号,这时候我们使用DISTINCT,就可以从订单表中只显示所有不重复的客户编号,就这么个意思~