Dict.CN 在線詞典, 英語學習, 在線翻譯

          都市淘沙者

          荔枝FM Everyone can be host

          導航

          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          公告


          我的blog中的部分資源是來自于網絡上,如果你認為侵犯了你的權利,請及時聯系jelver#163.com,我會盡快刪除!另外如果要留言最好通過郵件的形式跟我交流因為我不是很經常寫文章,前面有的朋友留言好久了我才發(fā)現,所以對不住大家,現在留下MSN:jelver#163.com和QQ:253840881,歡迎交流! (用@代替#)

          隨筆分類

          文章分類

          隨筆檔案

          文章檔案

          相冊

          統計

          留言簿(23)

          積分與排名

          優(yōu)秀學習網站

          友情連接

          閱讀排行榜

          評論排行榜

          oracle 查詢不重復多列sql寫法【原創(chuàng)】

          Oracle中要求查詢表customer 中 t.address , t.customer_name不重復的列:

          通常想法是:
          select distinct t.address , t.customer_name from customer t
          然而這種寫法在oracle是錯誤的。

          因此有第二種想法:
          select count(*from ( select distinct t.address , t.customer_name from customer t)
          這種寫法是正確的,然而有沒有更好的寫法呢

          突發(fā)奇想的第三種,充分利用了
          ||的連接功能:
          select   count(distinct t.address ||t.customer_name) from  customer t

          這樣不就ok了吧,其實不是的,看看下面這種情況就知道了
          若第一條記錄為:
          address
          = testAddT ,customer_name=omcat
          第二條記錄
          address
          = testAdd ,customer_name=Tomcat
          這種情況t.address 
          ||t.customer_name得出的值都是一樣的,然而顯然這兩條記錄是不同的,如何解決這種問題呢,就是加入特殊字符來解決,比如我們確定這兩列字段中不會出現#這樣的字符內容,好辦,此時就可以寫出如下完美的sql語句了
          select   count(distinct t.address ||'#'||t.customer_name) from  customer t

          最后說明:不同的數據庫中的sql查詢語法都可能都會有差別的所以要針對特定數據庫而言,不過思想是可以借鑒的,因此重要的是理解靈活的解決問題思想



          posted on 2009-10-23 10:08 都市淘沙者 閱讀(3961) 評論(0)  編輯  收藏 所屬分類: Oracle/Mysql/Postgres/

          主站蜘蛛池模板: 陇南市| 昌都县| 乌海市| 宁安市| 江源县| 临洮县| 凤城市| 独山县| 余干县| 夹江县| 墨江| 翼城县| 青州市| 姚安县| 石景山区| 封丘县| 南漳县| 德安县| 虞城县| 沭阳县| 和龙市| 安国市| 潼关县| 西昌市| 雅江县| 大田县| 乌海市| 巴林右旗| 文山县| 临颍县| 北京市| 来宾市| 车险| 顺昌县| 昌宁县| 和硕县| 建瓯市| 宣恩县| 盈江县| 潞西市| 平罗县|