日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
      軟件
      軟件
      文章
      搜索

      首頁西西教程數(shù)據(jù)庫教程 → SQL中 Group by、having、order by、Distinct 需要注意的事項(xiàng)

      SQL中 Group by、having、order by、Distinct 需要注意的事項(xiàng)

      相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來源:西西整理時(shí)間:2012/10/29 10:16:52字體大。A-A+

      作者:佚名點(diǎn)擊:47次評(píng)論:1次標(biāo)簽: SQL

      • 類型:數(shù)據(jù)庫類大。1.7M語言:英文 評(píng)分:6.6
      • 標(biāo)簽:
      立即下載

      直奔主題,如下SQL語句:

      SELECT COUNT(*) AS COUNT,REQUEST,METHOD FROM REQUESTMETH GROUP BY 
      REQUEST,METHOD HAVING (REQUEST ='FC.OCEAN.JOB.SERVER.CBIZOZBKHEADER' OR REQUEST='FC.Ocean.Job.Server.CBizOzDocHeader')
      AND COUNT(*) >3
      ORDER BY REQUEST

      注意事項(xiàng):

      HAVING后的條件不能用別名COUNT>3 必須使用COUNT(*) >3,否則報(bào):列名 'COUNT' 無效。

      having 子句中的每一個(gè)元素并不一定要出現(xiàn)在select列表中

      如果把該語句寫成:

      SELECT COUNT(*) AS COUNT,REQUEST,METHOD FROM REQUESTMETH GROUP BY 
      REQUEST ORDER BY REQUEST

      那么將報(bào):

      選擇列表中的列 'REQUESTMETH.method' 無效,因?yàn)樵摿袥]有包含在聚合函數(shù)或 GROUP BY 子句中。

      注意:
      1、使用GROUP BY 子句時(shí),SELECT 列表中的非匯總列必須為GROUP BY 列表中的項(xiàng)。
      2、分組時(shí),所有的NULL值分為一組。
      3、GROUP BY 列表中一般不允許出現(xiàn)復(fù)雜的表達(dá)試、顯示標(biāo)題以及SELECT列表中的位置標(biāo)號(hào)。

      如:

      SELECT REQUEST,METHOD, COUNT(*) AS COUNT FROM REQUESTMETH GROUP BY 
      REQUEST,2 ORDER BY REQUEST  

      錯(cuò)誤信息為:每個(gè) GROUP BY 表達(dá)式都必須包含至少一個(gè)列引用。

      GROUP BY 中使用 ORDER BY注意事項(xiàng):

      SELECT COUNT(*) AS COUNT FROM REQUESTMETH GROUP BY REQUEST,METHOD ORDER BY REQUEST,METHOD

      --這樣是允許的, ORDER BY后面的字段包含在GROUP BY 子句中

      SELECT COUNT(*) AS COUNTS FROM REQUESTMETH GROUP BY REQUEST ORDER BY COUNT(*) DESC 

      --這樣是允許的,ORDER BY后面的字段包含在聚合函數(shù)中,結(jié)果集同下面語句一樣

      SELECT COUNT(*) AS COUNTS FROM REQUESTMETH GROUP BY REQUEST ORDER BY COUNTS DESC 

      --這樣是允許的,區(qū)別于HAVING,HAVING后不允許跟聚集函數(shù)的別名作為過濾條件

      SELECT COUNT(*) AS COUNTS FROM REQUESTMETH GROUP BY REQUEST ORDER BY METHOD

      --這樣是錯(cuò)誤的:ORDER BY 子句中的列 "REQUESTMETH.method" 無效,因?yàn)樵摿袥]有包含在聚合函數(shù)或 GROUP BY 子句中。


      SELECT DISTINCT 中使用 ORDER BY注意事項(xiàng):

      SELECT DISTINCT BOOKID FROM BOOK ORDER BY BOOKNAME

      以上語句將報(bào):

      --如果指定了SELECT DISTINCT,那么ORDER BY 子句中的項(xiàng)就必須出現(xiàn)在選擇列表中。

      因?yàn)橐陨险Z句類似

      SELECT BOOKID FROM BOOK GROUP BY BOOKID ORDER BY BOOKNAME

      其實(shí)錯(cuò)誤信息也為:

      --ORDER BY子句中的列"BOOK.BookName" 無效,因?yàn)樵摿袥]有包含在聚合函數(shù)或GROUP BY 子句中。


      應(yīng)該改為:

      SELECT DISTINCT BOOKID,BOOKNAME FROM BOOK ORDER BY BOOKNAME

      SELECT DISTINCT BOOKID,BOOKNAME FROM BOOK
      

      SELECT BOOKID,BOOKNAME FROM BOOK GROUP BY BOOKID,BOOKNAME

      以上兩句查詢結(jié)果是一致的,DISTINCT的語句其實(shí)完全可以等效的轉(zhuǎn)換為GROUP BY語句

        相關(guān)評(píng)論

        閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過難過
        • 5 囧
        • 3 圍觀圍觀
        • 2 無聊無聊

        熱門評(píng)論

        最新評(píng)論

        發(fā)表評(píng)論 查看所有評(píng)論(1)

        昵稱:
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過審核才能顯示)