SQL 基础 :Distinct 和 order by 关系。(Distinct 自动排序)

  今天本来是测试一段代码,然后用到Distinct关键字,查看执行计划之后,突然发现过程中有对表进行sort! 上网搜索和加之验证得出如下结果:

   结论:

  1.使用distinct 关键字后会对distinct后面用到的关键字进行默认的升序排序.

  2.可以使用order by 来改变排序规则.

  3.使用distinct后,出现在order by 中的字段必须要写在 SELECT 句中,非充要条件。


 

  求问各大神:如何消除distinct自动排序,及为什么要进行排序,还有distinct是如何做到消除重复列的!

  另:

  

//Wrong SQL
SELECT DISTINCT field_1,field_2 FROM Table ORDER BY field_0
//Reason
ORDER BY 子句与 (OrderIndex) DISTINCT 冲突
//Solve Method
SELECT field_1,field_2 FROM Table GROUP BY field_1,field_2 ORDER BY Min(field_0)

 

 

  Group by 语句好像也要自动进行排序,求真相???

  


 

  测试数据如下:

 1 CREATE TABLE Student (id int identity(0,1), name nvarchar(20) ,course nvarchar(20) , score int)
 2 DROP TABLE Student
 3 insert into Student values
 4 ('张三','语文',81),
 5 ('张三','数学',75),
 6 ('李四','语文',76),
 7 ('李四','数学',90),
 8 ('王五','语文',81),
 9 ('王五','数学',100),
10 ('王五','英语',90)

   执行  SQL : SELECT   distinct S.name ,S.score FROM Student S ;

   查看执行计划结果如下:

 

 

  可以看到在sort阶段,分别对name和score两个字段进行升序排序!


 

  执行  SQL : SELECT   distinct S.name ,S.score FROM Student S ;

  查看执行计划结果如下:

 

 

   对score 和name 分别 降序和升序排序!


  执行  SQL :SELECT   distinct S.name ,S.score FROM Student S order by S.score desc ,S.course;

  查看执行计划结果如下:

 

  解析成功,但执行错误!

  

 

转载于:https://www.cnblogs.com/alexlo/archive/2012/11/06/2757333.html

weixin_30492047
关注 关注
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL SERVER 问题解决:DISTINCTORDER BY
JESUSisSAVIOR的博客
11-15 1007
SQL SERVER 问题解决:DISTINCTORDER BY
SQL基础查询语句(二)-- DISTINCTORDER BY、AND、OR语句用法及练习
weixin_43149038的博客
05-11 394
DISTINCTORDER BY、AND、OR语句用法及练习
distinct 排序_SQL | 汇总分析、排序、运行顺序
weixin_39531688的博客
11-29 715
1、汇总分析COUNT 计数(某列有多少行)SUM 列数据求和 AVG 列数据求平均MAX 列数据最大值 MIN 列数据最小值函数的功能:数据输入、自身的特性功能、数据输出练习:-------查询学生编号为‘0002’的总成绩 SELECT 学号, SUM(成绩) 总成绩 FROM course WHERE 学号='0002';结果:练习:------查询选了课程的学生人数 SELEC...
distinct 排序_SQL聚合、分组和排序
weixin_39796878的博客
11-21 431
聚合函数聚合函数包括COUNT、SUM、AVG、MIN、MAX。聚合函数根据规则把多行结果输出为一行结果。SELECT 执行该SQL语句会失败,聚合函数是把多行结果聚集在一起,最终输出一行,而product_name的查询结果有多行,即便能输出,输出结果如下所述,sum计算的是所有结果总和,product_name是单个结果,不存在一一对应的关系,自然会报错。product_namesum叉子50...
SQL DISTINCT 相同的合并 和DESC 、ASC 排序
mimi5821741的专栏
05-27 2452
SELECT DISTINCT u.* FROM users AS u,user_follow AS f WHERE (u.usersId = f.followeeId AND f.followerId=3 )OR( f.followeeId=3 AND u.usersId = f.followerId) AND u.userState=0 AND f.userFollowState=0
distinct 排序_SQL点滴(排序篇):数据常规排序查询实战示例
weixin_39792475的博客
11-26 1165
导引本文主要是针对在微头条上发布关于SQL查询排序的常规实操案例的汇总,以便收藏在线查阅。关于查询排序的参考示例主要有:1.如何实现以指定的次序返回查询结果?比如我们要对部门编号为3的员工工资的按升序排列结果,可以这样进行SQL语句的编写:select ename,job,salary,comm from employee where departid = 2 order by salary as...
Distinct()后排序
weixin_30399055的博客
07-01 637
//.Distinct().OrderBy(p => new{p.AreaNo,p.SubjectNo,p.CourseNo,p.TimeNo}).ToList(); 转载于:https://www.cnblogs.com/kksguijiao/articles/4612671.html
SQL去重:distinct和row_number()over()的区别
qq_32572085的博客
05-27 2214
1 前言 在咱们编写 SQL 语句操作数据库中的数据的时候,有可能会遇到一些不太爽的问题,例如对于同一字段拥有相同名称的记录,我们只需要显示一条,但实际上数据库中可能含有多条拥有相同名称的记录,从而在检索的时候,显示多条记录,这就有违咱们的初衷啦!因此,为了避免这种情况的发生,咱们就需要进行“去重”处理啦,那么何为“去重”呢?说白了,就是对同一字段让拥有相同内容的记录只显示一条记录。 那么,...
研究一条distinct+order by+limit的SQL执行过程,发现limit影响排序结果的彩蛋
灯火觅阑珊
04-02 2824
假设有如下表: mysql> select * from tab; +----+------+ | id | col1 | +----+------+ | 1 | 2 | | 2 | 2 | | 3 | 5 | | 4 | 3 | | 5 | 3 | | 6 | 4 | +----+------+ 6 rows in set (0.01 sec...
数据库SQL之实战distinct和group by
weixin_43868107的博客
10-11 485
题目描述 查找入职员工时间排名倒数第三的员工所有信息 CREATE TABLE employees ( emp_no int(11) NOT NULL, birth_date date NOT NULL, first_name varchar(14) NOT NULL, last_name varchar(16) NOT NULL, gender char(1) NOT NULL, hire_da...
使用sql语法中的去重distinct自动排好序
m0_46506271的博客
01-08 726
今天在写sql的时候,偶然发现:使用distinct去重后还会自动排序,以前没怎么注意,今天学到了!
mysql distinct 排序_SQL 基础Distinctorder by 关系。(Distinct 自动排序
weixin_42509868的博客
01-19 5606
今天本来是测试一段代码,然后用到Distinct关键字,查看执行计划之后,突然发现过程中有对表进行sort! 上网搜索和加之验证得出如下结果:结论:1.使用distinct 关键字后会对distinct后面用到的关键字进行默认的升序排序.2.可以使用order by 来改变排序规则.3.使用distinct后,出现在order by 中的字段必须要写在 SELECT 句中,非充要条件。求问各大神:...
distinct 排序_除了会排序,你对ORDER BY的用法可能一无所知!
weixin_39691233的博客
11-27 445
导读为什么只有ORDER BY后面可以使用列别名为什么不推荐使用ORDER BY后接数字来排序为什么视图和子查询里面不能使用ORDER BY ……​小伙伴们在进行SQL排序时,都能很自然的使用到ORDER BY。不管是默认ASC的升序,还是DESC降序,几乎都是信手拈来。今天给大家分享一些你可能不知道的ORDER BY用法。一、ORDER BY返回的是游标而不是集合SQL的理论其实是集合论...
distinct 排序_SQL汇总 分组 指定条件 排序 分析解决问题
weixin_39571087的博客
11-29 227
汇总函数的应用 sum avg count等分组、指定条件 group by,having用SQL解决问题的 方法 三步对查询结果排序 order bySQLZOO练习题 如何看懂报错和总结一、汇总函数的应用Count sum avg max min 求行数,列求和,列平均值,列最大值,列最小值汇总函数计算的是列名会将空值排除在外,*代表全部,会包括空值Sum和avg 只能对数值类型的列进行计算书...
distinct 排序_sql进阶教程-使用子查询方法进行排序
weixin_39899630的博客
11-29 226
问题:生成新列,对Products表格中price列的数字排序。有重复排序:-- 无重复排序:-- 分组排序(无重复排序):select 讲解:select后面的子查询:select select 后面的子查询只返回一个字段一条数据,结果具有唯一性。该句的计算意义是:1)分组2)计算t1价格大于t2价格的价格,并将该价格生成集合3)对该集合进行去重操作...
distinct 排序_自己造一个排序算法
weixin_39770506的博客
11-29 209
1.朴素的DIY排序DIY 公式解读:rankx_table :造一个需要参考表,有两列,一列是【品牌】,另一列是品牌的销量VAR x : 获得当前上下文【品牌】(指表格的行)的销量[sum of sales]**** VAR r : 计算rankx_table中比 x(当前品牌)等于或大于销量的品牌有多少个,即是计数2.多层级排序Rankx 可以看到DIY...
distinct的用法及排序技巧
weixin_33957648的博客
06-26 983
--去掉重复的查询记录:selectdistinct(a.a)fromtable_namea;--查询排序的字段有NULL值时,可以控制NULL的记录是排在首位还是末尾:--排在首位select*fromtable_nameorderbycolumn_nameNULLSfirst;--排在末尾select*fromtable_nameorde...
Mysql DISTINCT去重 排序
u014611173的专栏
08-26 1612
8.0环境不方便groupby的情况下,distinct 排好序的临时表发现乱序,distinct默认取表的第一列去正序排序,在临时表第一列改成序号(@i:= @i+1)解决
sql distinctorder by
最新发布
10-11
1. DISTINCTORDER BY可以联合使用,以便对唯一的行进行排序。 2. 在使用DISTINCT时,ORDER BY子句必须放在SELECT语句的最后。 3. 使用ORDER BY时,可以指定多个列进行排序,使用逗号分隔。 4. ORDER BY默认是按照...
写文章

热门文章

  • Simulink模块之Zero-Order Hold和Unit Delay的区别 19746
  • Python基础语法题库 17535
  • Linux (麒麟)系统 重启后无法登陆进图形界面 13026
  • c++ rand随机数生成(随机种子设置) 12954
  • springmvc结合base64存取图片到mysql 11814

最新文章

  • 访问 Django 项目的静态资源
  • vm ------ 安装
  • sqlyog -------- 安装
2019年741篇
2018年776篇
2017年672篇
2016年587篇
2015年429篇
2014年296篇
2013年266篇
2012年187篇
2011年136篇
2010年109篇
2009年81篇
2008年72篇
2007年53篇
2006年41篇
2005年20篇
2004年12篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家郑州水果玻璃钢雕塑制作广东不锈钢玻璃钢雕塑吉林步行街玻璃钢雕塑市场汕头玻璃钢雕塑广场摆件咸阳玻璃钢十二生肖雕塑佛山户外玻璃钢卡通雕塑青岛玻璃钢花盆采购潮州玻璃钢雕塑定制定做人物玻璃钢雕塑大全香港商场商业美陈宁波环保玻璃钢雕塑多少钱佛山玻璃钢动物雕塑推荐厂家达州玻璃钢雕塑制作厂家高架桥玻璃钢花盆在哪里有卖玻璃钢艺术雕塑采购甘肃人物玻璃钢雕塑定做玻璃钢雕塑做黑钛工艺流程工业玻璃钢雕塑摆件宁夏景区玻璃钢雕塑订做张掖人物玻璃钢雕塑价格铜川玻璃钢伟人像雕塑云南园林景观玻璃钢彩绘雕塑青海抽象人物玻璃钢雕塑制作上海玻璃钢陶瓷雕塑图片玻璃钢雕塑手绘海报玻璃钢抽象雕塑公司玻璃钢雕塑工厂哪家好景观玻璃钢雕塑服务商怎么样成都步行街玻璃钢雕塑定制巨型玻璃钢雕塑实体工厂香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化