生活随笔
收集整理的這篇文章主要介紹了
oracle distinct用法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
http://blog.csdn.net/yao__shun__yu/article/details/7960323
針對distinct不能一次查詢用戶想要的結果,采用group by解決
查詢表(大批量的車牌號重復、要把重復的車牌號去掉,同時顯示完整信息id、車牌號、型號)
[sql] view plaincopyprint?
SQL>?select?a.cid,a.cbrand,a.cmodel?from?aps_car?a;?????????????CID?CBRAND???????????????CMODEL??????????????2?京P?23001????????????大車???????????48?京P?23001????????????大車???????????49?黑H?52100????????????中車???????????51?黑H?09B89????????????小車???????????52?京Y?22090????????????大車???????????54?京A?00104????????????大車???????????55?京H?12345????????????大車???????????56?沈A?11223????????????中車????????????1?京P?00100????????????大車??
SQL> select a.cid,a.cbrand,a.cmodel from aps_car a;CID CBRAND CMODEL
----------- -------------------- --------------------2 京P 23001 大車48 京P 23001 大車49 黑H 52100 中車51 黑H 09B89 小車52 京Y 22090 大車54 京A 00104 大車55 京H 12345 大車56 沈A 11223 中車1 京P 00100 大車
distinct試試解決下(貌似解決了、但是沒有完整的信息)
[sql] view plaincopyprint?
SQL>?select?distinct?a.cbrand?from?aps_car?a;?????CBRAND????黑H?09B89??黑H?52100??京A?00104??京H?12345??京P?00100??京P?23001??京P?3H090??京Y?22090??沈A?11223?????9?rows?selected?????Executed?in?0.219?seconds??
SQL> select distinct a.cbrand from aps_car a;CBRAND
--------------------
黑H 09B89
黑H 52100
京A 00104
京H 12345
京P 00100
京P 23001
京P 3H090
京Y 22090
沈A 112239 rows selectedExecuted in 0.219 seconds
distinct試試輸出完整信息(發現這哥們開始耳鼻的重復了,不行了。因為distinct會對后面的信息,進行匹配看重復不,而不是單個的)
[sql] view plaincopyprint?
SQL>?select?distinct?a.cbrand,a.cid?from?aps_car?a;?????CBRAND???????????????????????CID????黑H?09B89?????????????????????51??黑H?09B89?????????????????????60??黑H?09B89?????????????????????70??黑H?09B89?????????????????????80??黑H?09B89?????????????????????93??黑H?09B89????????????????????103??黑H?09B89????????????????????113??黑H?09B89????????????????????123??黑H?52100?????????????????????49??黑H?52100?????????????????????59??黑H?52100?????????????????????69??黑H?52100?????????????????????79??黑H?52100?????????????????????92??黑H?52100????????????????????102??黑H?52100????????????????????112??黑H?52100????????????????????122??京A?00104?????????????????????54??
SQL> select distinct a.cbrand,a.cid from aps_car a;CBRAND CID
-------------------- -----------
黑H 09B89 51
黑H 09B89 60
黑H 09B89 70
黑H 09B89 80
黑H 09B89 93
黑H 09B89 103
黑H 09B89 113
黑H 09B89 123
黑H 52100 49
黑H 52100 59
黑H 52100 69
黑H 52100 79
黑H 52100 92
黑H 52100 102
黑H 52100 112
黑H 52100 122
京A 00104 54
distinct再試試把cid字段放到前面(發現報錯了,不行,不讓這樣用。。。nnd)
?
[sql] view plaincopyprint?
SQL>?select?a.cid?distinct?a.cbrand?from?aps_car?a;?????select?a.cid?distinct?a.cbrand?from?aps_car?a?????ORA-00923:?FROM?keyword?not?found?where?expected?????
SQL> select a.cid distinct a.cbrand from aps_car a;select a.cid distinct a.cbrand from aps_car aORA-00923: FROM keyword not found where expected
?
現在用group by解決下(已經解決了,但是也不能每個字段都加上max啊)
[sql] view plaincopyprint?
SQL>??select?a.cbrand,max(a.cid),max(a.cmodel)?from?aps_car?a?group?by?a.cbrand;?????CBRAND???????????????MAX(A.CID)?MAX(A.CMODEL)????黑H?09B89???????????????????123?小車??黑H?52100???????????????????122?中車??京A?00104???????????????????125?大車??京H?12345???????????????????126?大車??京P?00100???????????????????128?大車??京P?23001???????????????????121?大車??京P?3H090???????????????????132?大車??京Y?22090???????????????????124?大車??沈A?11223???????????????????127?中車?????9?rows?selected??
SQL> select a.cbrand,max(a.cid),max(a.cmodel) from aps_car a group by a.cbrand;CBRAND MAX(A.CID) MAX(A.CMODEL)
-------------------- ---------- --------------------
黑H 09B89 123 小車
黑H 52100 122 中車
京A 00104 125 大車
京H 12345 126 大車
京P 00100 128 大車
京P 23001 121 大車
京P 3H090 132 大車
京Y 22090 124 大車
沈A 11223 127 中車9 rows selected
在整理下group by方式(好了現在所有字段都可以輸出了)
[sql] view plaincopyprint?
SQL>?select?*?from?aps_car?b?where?b.cid?in?(select?max(a.cid)?from?aps_car?a?group?by?a.cbrand);??????????????CID?CBRAND???????????????CMODEL???????????????CORIGIN????????????????????????????????????????????CPRODUCE????CBUY????????CPRIPAL????????CVOLUME???????CAPAC????????????123?黑H?09B89????????????小車?????????????????中國吉林長春???????????????????????????????????????1998-9-18???2009-4-15???馮婉瑩????????????1000????????1500??????????122?黑H?52100????????????中車?????????????????中國黑龍江哈爾濱???????????????????????????????????2007-9-4????2011-7-13???高洪建?????????????700?????????850??????????125?京A?00104????????????大車?????????????????臺灣高雄仙臺市?????????????????????????????????????2003-9-4????2012-3-14???付政委????????????8000????????9000??????????126?京H?12345????????????大車?????????????????中國甘肅隴南???????????????????????????????????????1987-2-17???2002-7-27???馮奇緣????????????2500????????2000??????????128?京P?00100????????????大車?????????????????中國北京???????????????????????????????????????????2000-6-2????2010-12-23??馮奇緣?????????????500?????????800??????????121?京P?23001????????????大車?????????????????中國北京???????????????????????????????????????????2010-10-25??2012-5-16???江風???????????????500?????????800??????????132?京P?3H090????????????大車?????????????????中國廣東佛山???????????????????????????????????????2011-3-16???2012-11-22??付政委????????????8000????????9500??????????124?京Y?22090????????????大車?????????????????韓國濟州道江華郡???????????????????????????????????2003-5-8????2011-11-7???馮奇緣????????????9000????????8000??????????127?沈A?11223????????????中車?????????????????中國遼寧大連???????????????????????????????????????1985-4-4????2011-6-4????付政委?????????????499?????????944?????9?rows?selected?????Executed?in?0.266?seconds??
?
總結
以上是生活随笔為你收集整理的oracle distinct用法的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。