【Oracle】和【Mysql】中SQL语句中的一些函数用法区别小结

1,mysql中的【IFNULL】与 ORACLE 中的 【NVL】用法区别

在mysql中:

                  IFNULL(expr1,expr2)的用法:

                          如果expr1为NULL,则返回expr2;否则返回expr1值本身。


oracle中:

              nvl(expr1,expr2)

                           如果expr1为NULL,则返回expr2,否则返回expr1值本身。(与mysql的IFNULL类似)。


              nvl2(x,value1,value2)

                            如果x不为NULL,返回value1,否则,返回value2




2,mysql和Oracle【分页】的区别

 mysql中:

            用 LIMIT 就可以实现分页:

select * from table limit m,n

其中m是指记录开始的index,是基零的,从0开始,表示第一条记录
n是指从第m+1条开始,取n条。

select * from tablename limit 2,4

即取出第3条至第6条,共4条记录


          扩展:

   、、为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1:
mysql> SELECT * FROM table LIMIT 95,-1;     // 检索记录行 96 至 last


   、、如果只给定一个参数,它表示返回最大的记录行数目: 
   mysql> SELECT * FROM table LIMIT 5;    //检索前 5 个记录行


Oracle中:

1,数据库分页:每次查询出需要显示的数据

select * 
from(
    select rownum rn,empno,ename,job,hiredate,sal 
    from emp
    where rownum<=5)
where rn>=1;
select * 
from(
    select rownum rn,empno,ename,job,hiredate,sal 
    from emp
    where rownum<=10)
where rn>=6;

假如显示数据: 5条
那么
末尾是:页码*5 ;起始是:(页码-1)*5+1

1:              5,1
2:            10,6 


2,结果集分页:一次查询出所有符合的数据,在显示的时候,可以通过subList()方法截取

select rownum rn,empno,ename,job,hiredate,sal 
from emp

一次查出所有的数据

通过封装一个用于页面显示的工具类pageUtil可以简化代码。

最关键的是,保存在session的数据集合,决定页面显示的数据。




猜你喜欢

转载自blog.csdn.net/weixin_41888813/article/details/81171240