SQL关键字distinct去重是不是有排序的功能

时间:2022-01-08 17:00:53
后面加了条件之后  查询结果也就6条数据  只是使用了distinct后的结果显示不一样  这是什么情况
select   ys.NAME name from  SCM_dingdan2 dtl2 left join cp_yanse ys on yanse=ys.ID where billid=1211418 and rowno=(select min(rowno) from  SCM_dingdan2 dtl2 where billid= 1211418)

查询结果 SQL关键字distinct去重是不是有排序的功能

然后使用了distinct之后 查询结果就变了
select  distinct ys.NAME name from  SCM_dingdan2 dtl2 left join cp_yanse ys on yanse=ys.ID where billid=1211418 and rowno=(select min(rowno) from  SCM_dingdan2 dtl2 where billid= 1211418)

SQL关键字distinct去重是不是有排序的功能

3 个解决方案

#1


是有排序功能,并且是先排序,再去掉重复值;

去重复值时,只要比较相邻的行就可以了;

#2


本身你没有使用 order by 来指定排序顺序,查询的顺序就是根据执行计划制定的。添加了distinct之后顺序不一样是因为执行计划都不一样了从而影响了结果集的顺序

#3


楼主看一下这个
http://bbs.csdn.net/topics/390756833?page=1

#1


是有排序功能,并且是先排序,再去掉重复值;

去重复值时,只要比较相邻的行就可以了;

#2


本身你没有使用 order by 来指定排序顺序,查询的顺序就是根据执行计划制定的。添加了distinct之后顺序不一样是因为执行计划都不一样了从而影响了结果集的顺序

#3


楼主看一下这个
http://bbs.csdn.net/topics/390756833?page=1