having在Oracle和mysql中的一點不同點,havingoraclemysql
在Oracle中,having一定要結合group by使用,但在mysql中,情況就不一樣了,可以單獨使用。
C:\Documents and Settings\guogang>sqlplus test/test
SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 8月 12 09:09:58 2014
Copyright (c) 1982, 2005, Oracle. All rights reserved.
串連到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select * from test1 having owner ='SYS';
select * from test1 having owner ='SYS'
*
第 1 行出現錯誤:
ORA-00979: 不是 GROUP BY 運算式
SQL> select owner,count(1) from test1 group by owner having owner ='SYS';
OWNER COUNT(1)
------------------------------ ----------
SYS 30754
mysql> select * from test having id>98;
+------+-------------+
| id | create_time |
+------+-------------+
| 99 | 2014-08-12 |
| 100 | 2014-08-12 |
+------+-------------+
2 rows in set (0.00 sec)
mysql> select id,count(1) from test group by id having id>98;
+------+----------+
| id | count(1) |
+------+----------+
| 99 | 1 |
| 100 | 1 |
+------+----------+
2 rows in set (0.00 sec)
oracle where 與having從句不同
不光在oracle裡面,在其他資料庫裡面也是
說的簡單一點where是對所有查詢條件的過濾,而having只是針對group by(注意不是order by)的條件過濾/篩選,所以having必須要和group by一起使用。
總結Oracle與mysql在SQL語言方面的不同點
1 id遞增 oracle使用sequence ;mysql使用auto_increment
2 分頁 oracle使用rownum(3個select語句);mysql使用limit
3 目前時間 oracle:sysdate;mysql:now()
4 資料類型不同!--具體的查資料!
目前想到的就這些,呵呵……