having在Oracle和mysql中的一点不同点

在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)

having在Oracle和mysql中的一点不同点

时间: 2024-10-06 06:48:26

having在Oracle和mysql中的一点不同点的相关文章

oracle转Mysql中,varchar2(10)和number应该转换为什么类型? (转)

一. varchar2(10)和number应该转换为什么类型? oracle转成mysql时:varchar2(10)可以转成varchar(10)number则要看oracle中存储的具体是什么类型的数据:1.如果是整型,那么mysql中,用int即可:2.如果是带小数位的,那么mysql中可用numeric类型. 注:mysql中没有varchar2(10)和number这两个数据类型 二. Mysql varchar VS Oracle varchar2 mysql和oracle做数据同

oracle转Mysql中,varchar2(10)和number应该转换为什么类型?

一. varchar2(10)和number应该转换为什么类型? oracle转成mysql时:varchar2(10)可以转成varchar(10)number则要看oracle中存储的具体是什么类型的数据:1.如果是整型,那么mysql中,用int即可:2.如果是带小数位的,那么mysql中可用numeric类型. 注:mysql中没有varchar2(10)和number这两个数据类型 二. Mysql varchar VS Oracle varchar2 mysql和oracle做数据同

Oracle和Mysql中的字符串的拼接

SQL允许两个或者多个字段之间进行计算,字符串类型的字段也不例外.比如我们需要 以"工号+姓名"的方式在报表中显示一个员工的信息,那么就需要把工号和姓名两个字符 串类型的字段拼接计算:再 如 我们需要在报表中在每个员工的工号前增加"Old"这个文本. 这时候就需要我们对字符串类型的字段(包括字符串类型的常量字段)进行拼接.在不同的 数据库系统下的字符串拼接是有很大差异的,因此这里我们将讲解主流数据库下的字符串拼 接的差异. Mysql 在Java.C#等编程语言中字

[数据库]Oracle和mysql中的分页总结

物理分页 •在sql查询时,从数据库只检索分页需要的数据 •通常不同的数据库有着不同的物理分页语句 •mysql物理分页,采用limit关键字 •例如:检索11-20条 select * from user limit 10,10 ; * 每次只查询10条记录.当点击下一页的时候,查询数据库,查询后10条. * 优点:如果数据量非常大,不会导致内存溢出. * 缺点:每次都与数据库进行交互. * 分页一般采用数据库的sql语句完成分页查询. * MYSQL分页:使用limit关键字. * Orac

oracle和mysql中update联表批量更新数据的区别

之前碰到一个sql语句,在oracle中可以运行,在mysql上就不行,后来查了好久,发现了他们两个联表批量更新数据的区别如下: (借鉴一下别人的例子) update :单表的更新不用说了,两者一样,主要说说多表的更新复制代码 代码如下: Oracle> Oracle的多表更新要求比较严格,所以有的时候不是很好写,我们可以试试Oracle的游标 update ( select t.charger_id_ new_charger_id_ from t_cus_year_status t left

ORACLE与mysql中查询第n条到第m条的数据记录的方法

ORACLE: SELECT * FROM             (                  SELECT 表名.*, ROWNUM AS CON FROM 表名 WHERE ROWNUM <= 100 AND 其它查询条件 ORDER BY 排序条件              )WHERE CON >=10; MYSQL: select * from 表名 limit 10,100;

mybatis中的模糊查询,Oracle和MySQL中的concat

MySQL数据库,利用concat函数即可,MySQL不用能||连接字符串 mapper.xml select * from tb_content_category where title like concat('%',#{paramMap.TITLE, jdbcType=VARCHAR},'%') Oracle数据库,利用concat函数或者||,Oracle数据库利用concat函数时,需要嵌套concat,因为Oracle的concat函数每次只能连接两个字符串 mapper.xml s

oracle、mysql时区设置对timestamp的不同影响

因最近国际去Oracle上MySQL,这就不可避免的涉及到时区和timestamp问题.做一下实验,总结一下. Oracle 首先看下oracle concepts对timestamp的定义: The TIMESTAMP data type is an extension of the DATE data type. It stores fractional seconds in addition to the information stored in the DATE data type.

Oracle和MySQL分组查询GROUP BY

Oracle和MySQL分组查询GROUP BY 真题1.Oracle和MySQL中的分组(GROUP BY)有什么区别? 答案:Oracle对于GROUP BY是严格的,所有要SELECT出来的字段必须在GROUP BY后边出现,否则会报错:“ORA-00979: not a GROUP BY expression”.而MySQL则不同,如果SELECT出来的字段在GROUP BY后面没有出现,那么会随机取出一个值,而这样查询出来的数据不准确,语义也不明确.所以,作者建议在写SQL语句的时候,