什么办法可以替代distinct
今天在论坛上看到一个面试题,是说有什么办法可以替代distinct,得到同样的结果。答案都被大家说的差不多了,发现挺有意思的,就记录一下:
SQL> select num from t1;
NUM
----------
6
6
7
8
9
1
1
1
1
1
1
1
1
1
1
15 rows selected
SQL> select distinct num from t1;
NUM
----------
1
6
8
7
9
5 rows selected
一、用unique代替distinct:
这个比较无耻,基本属于说了跟没说一样,但确实是对的
SQL> select unique num from t1;
NUM
----------
1
6
8
7
9
5 rows selected
二、用group by来做:
这个应该是出题者的本意
SQL> select num from t1 group by num;
NUM
----------
1
6
8
7
9
5 rows selected
三、用union和minus:
因为union和minus默认都是先distinct然后再做聚集,所以可以这样做:
SQL> select num from t1 minus select 999 from dual;
NUM
----------
1
6
7
8
9
5 rows selected
SQL> select num from t1 union select num from t1 ;
NUM
----------
1
6
7
8
9
5 rows selected
一个是minus一个没有的项,一个是union它本身。
------------------你若盛开 - 蝴蝶自来------------------
如果,您认为阅读这篇博客让您有些收获, 如果,您希望更容易地发现我的新博客,不妨关注一下。因为,我的写作热情也离不开您的肯定支持。
感谢您的阅读,如果您对我的博客所讲述的内容有兴趣,请继续关注我的后续博客。
因为有小孩,兼职卖书,路过的朋友有需要低价购买图书、点读笔、纸尿裤等资源的,可扫最上方二维码,质量有保证,价格很美丽,欢迎咨询! 欢迎关注微信公众号:18般武艺
如果,您认为阅读这篇博客让您有些收获, 如果,您希望更容易地发现我的新博客,不妨关注一下。因为,我的写作热情也离不开您的肯定支持。
感谢您的阅读,如果您对我的博客所讲述的内容有兴趣,请继续关注我的后续博客。
因为有小孩,兼职卖书,路过的朋友有需要低价购买图书、点读笔、纸尿裤等资源的,可扫最上方二维码,质量有保证,价格很美丽,欢迎咨询! 欢迎关注微信公众号:18般武艺