Jcat
          寵辱不驚,閑看庭前花開花落~~
          posts - 173,comments - 67,trackbacks - 0

          如果查詢中包括聚合函數(shù),而所選擇的列并不在聚合函數(shù)中, 那么這些列就必須在GROUP BY子句中。否則將會(huì)出現(xiàn)如下錯(cuò)誤:ORA-00937: not a single-group group function


          不能在WHERE子句中使用聚合函數(shù)來限制行。否則將會(huì)出現(xiàn)如下錯(cuò)誤:ORA-00934: group function is not allowed here


          GROUP BY可以不與HAVING一起使用,但HAVING必須與GROUP BY一起使用


          W-G-H的執(zhí)行順序
          SELECT?type_id,?AVG(price)
          FROM?products
          WHERE?price<15
          GROUP?BY?type_id
          HAVING?AVG(price)>13;
          1. WHERE對(duì)返回的進(jìn)行過濾
          2. GROUP BY對(duì)保留的行進(jìn)行分組
          3. HAVING對(duì)分組進(jìn)行過濾


          子查詢不能包含ORDER BY


          雙引號(hào)直接用:'The "Great" Gatsby' (表示字符串 The "Great" Gatsby )
          單引號(hào)要轉(zhuǎn)義:'O''Malley' (表示字符串 O'Malley )

          ?DML
          select column1,column2 from table
          insert into table(column1,column2) values('a','b')
          update table set column1='a' where column2='b'
          delete from table where column1='a'


          --外連接,使用叉積表達(dá)有歧義,不運(yùn)行:查詢中包含不允許的外聯(lián)接請(qǐng)求。
          select * from a,b,c
          ??????? where a.a_id*=b.a_id
          ??????????? and b.b_id*=c.b_id

          --這樣就不存在歧義性了
          select * from a
          ??? LEFT OUTER JOIN b on (a.a_id=b.a_id)
          ??? LEFT OUTER JOIN c on (b.b_id=c.b_id)

          posted on 2006-08-23 08:36 Jcat 閱讀(409) 評(píng)論(1)  編輯  收藏 所屬分類: Database

          FeedBack:
          # re: SQL Miscellane
          2006-10-20 00:04 | 金剛吃香蕉
          霸霸,給你補(bǔ)充一小點(diǎn)哈:
          1.當(dāng)使用group by后,select后面就不能跟*,必須跟具體的東西,如
          select name,age from XXX group by name,age;//這個(gè)是對(duì)的。
          select * from XXX group by name,age; //這個(gè)就是錯(cuò)誤的。
          PS:即使一張表的全部內(nèi)容就是只有name和age,也仍然要按上面的
          寫法。

          2.where和having都是一種條件選擇語句。having只配合group by使用。
          還有一個(gè)就是where與having的區(qū)別。where是先查后排,having是先排
          后查。  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 兴安盟| 济南市| 三江| 咸丰县| 刚察县| 禄丰县| 绥芬河市| 都昌县| 五指山市| 临高县| 芜湖县| 靖江市| 饶河县| 宜章县| 松滋市| 都江堰市| 枣庄市| 永济市| 永宁县| 百色市| 虞城县| 阜平县| 比如县| 铁岭县| 衡山县| 喀喇沁旗| 随州市| 达日县| 新竹市| 石门县| 广汉市| 云龙县| 陕西省| 岑巩县| 新源县| 林芝县| 年辖:市辖区| 莱西市| 连江县| 平乡县| 昌吉市|