SELECT LPAD('Page 1',,'*.') "LPAD example"  FROM DUAL;

1.分页查询

(1)方法一:使用  between  and 来实现分页

select * from
(
select emp.*,rownum rn from emp
)
where rn between and

(2)方法二:使用 rownum 来实现分页

select * from
(
select emp.*,rownum rn from emp
where rownum<=
)
where rn>=

(3)方法三:使用rownum 三层来实现分页

select * from
(
select emp.*,rownum rn from
(
select * from emp
)emp
where rownum<=
)
where rn >=4

得到的结果如下:

2.分析函数

(1)rank()   :rank()函数返回一个唯一的值,当遇到相同的数据时,所有相同数据的排名是一样的,

同时会在最后一条相同记录和下一条不同记录之间空出排名。

select ename,deptno,sal,
rank() over(partition by deptno order by sal desc) "RANK"
--dense_rank() over(partition by deptno order by sal desc)"dense_rank"
--row_number() over(partition by deptno order by sal desc)"row_number"
from emp

结果:

(2)dense_rank()  :dense_rank()函数返回一个唯一的值,当遇到相同数据时,所有相同的数据的排名都是一样的。

select ename,deptno,sal,
--rank() over(partition by deptno order by sal desc) "RANK"
dense_rank() over(partition by deptno order by sal desc)"dense_rank"
--row_number() over(partition by deptno order by sal desc)"row_number"
from emp

(3)row_number():row_number()函数返回一个唯一的值,当遇到相同数据时,排名按照记录集中记录的顺序依次递增。

select ename,deptno,sal,
--rank() over(partition by deptno order by sal desc) "RANK"
--dense_rank() over(partition by deptno order by sal desc)"dense_rank"
row_number() over(partition by deptno order by sal desc)"row_number"
from emp

(4)合并结果:

select ename,deptno,sal,
rank() over(partition by deptno order by sal desc) "RANK",
dense_rank() over(partition by deptno order by sal desc)"dense_rank",
row_number() over(partition by deptno order by sal desc)"row_number"
from emp

3.SQL函数

(1)字符函数

1.大小写控制函数

lower():全部小写

SELECT LOWER('MR. SCOTT MCMILLAN') "Lowercase"  FROM DUAL;

upper():全部大写

SELECT UPPER('abc') "Uppercase"   FROM dual;

initcap():首字母大写

SELECT initcap('MR. SCOTT MCMILLAN') "initcap"  FROM DUAL;

2.字符控制函数

concat:拼接字符串

select concat('Happy','Boy') from dual;

substr:截取字符串

substr('要截取的字符串',起始位置)   说明:位置从1开始

select substr('HappyBoy',) from dual;

substr('要截取的字符,起始位置,取几个字符)

select substr('HappyBoy',,) from dual;

length('字符串'):字符个数统计
        lengthb('字符串'):字节个数统计

select length('快乐') 字符数,lengthb('快乐') as 字节数 from dual;

instr('大字符串','小字符串')返回小字符串在大字符串中出现的位置

SELECT INSTR('CORPORATE FLOOR','OR', , ) "Instring"  FROM DUAL;

lpad()和rpad()

SELECT LPAD('Page 1',,'*.') "LPAD example"  FROM DUAL;

SELECT ename, RPAD(' ', sal//, '*') "Salary"   FROM emp   WHERE deptno=   ORDER BY ename, "Salary";

trim()

select trim('a' from 'ahappy') from dual;

(2)日期函数

1.日期函数

months_between()两个日期相差的月数

SELECT MONTHS_BETWEEN (TO_DATE('02-02-1995','MM-DD-YYYY'),TO_DATE('01-01-1995','MM-DD-YYYY') ) "Months"  FROM DUAL;
 

add_months():向指定日期中加上若干月数

SELECT TO_CHAR(ADD_MONTHS(hiredate, ), 'DD-MON-YYYY') "Next month"  FROM emp   WHERE ename = 'JONES';

2.日期相减

两个日期相差的天数

select floor(sysdate-to_date('2015-12-12','yyyy-MM-dd')) from dual;

两个日期相差的月数

select months_between(sysdate,to_date('','yyyyMMdd')) from dual;

(3)转换函数
       1.隐式转换

select * from emp where hiredate='17-12月-80';

2.显式转换

to_char()对日期的转换

select to_char(sysdate,'yyyy-MM-dd hh24:mi:ss') from dual;

to_char()对数字的转换

select to_char(sal,'L9999.99') from emp;

(4)数字函数

1.round():四舍五入

select round(12.45,) from dual;

2.trunc

SELECT TRUNC(TO_DATE('2015-12-12','yyyy-MM-dd'), 'YEAR')  "New Year" FROM DUAL;
select trunc(15.71,) "trunc" from dual;

(5)通用函数

1.nvl()滤空函数

SELECT SAL* 工资,comm 奖金,sal*+nvl(comm,) from emp;

2.nvl2()滤空函数

SELECT SAL* 工资,comm 奖金,sal*+nvl2(comm,comm,) from emp;

3.不用滤空函数

SELECT SAL* 工资,comm 奖金,sal* from emp;

(6)decode函数

SELECT product_id,
DECODE (warehouse_id,
, 'Southlake',
, 'San Francisco',
, 'New Jersey',
, 'Seattle',
'Non domestic') "Location" FROM inventories
WHERE product_id < ORDER BY product_id, "Location";

Oracle 中的sql函数以及分页的更多相关文章

  1. Oracle中的SQL分页查询原理和方法详解

    Oracle中的SQL分页查询原理和方法详解 分析得不错! http://blog.csdn.net/anxpp/article/details/51534006

  2. SQL中Charindex和Oracle中对应的函数Instr

    转:http://blog.csdn.net/zhuyu19911016520/article/details/8568640 sql :charindex('字符串',字段)>0 charin ...

  3. Oracle中PL/SQL简介、基本语法以及数据类型

    Oracle中PL/SQL简介.基本语法以及数据类型 一.PL/SQL简介. Oracle PL/SQL语言(Procedural Language/SQL)是结合了结构化查询和Oracle自身过程控 ...

  4. Oracle中 Instr 这个函数

    http://www.jb51.net/article/42369.htm sql :charindex('字符串',字段)>0 charindex('administrator',MUserI ...

  5. oracle中的trim()函数详解

    1.先看一下Oracle TRIM函数的完整语法描述 TRIM([ { { LEADING | TRAILING | BOTH }[ trim_character ]| trim_character} ...

  6. oracle中的greatest 函数和 least函数

    oracle中的greatest 函数和 least函数 原文地址:https://blog.csdn.net/sinat_32023305/article/details/78778596    g ...

  7. 问题:oracle nvl;结果:Oracle中的NVL函数

    Oracle中的NVL函数 (2012-11-30 13:21:43) 转载▼ 标签: nvl oracle 分类: Oracle Oracle中函数以前介绍的字符串处理,日期函数,数学函数,以及转换 ...

  8. Oracle中使用Table()函数解决For循环中不写成 in (l_idlist)形式的问题

    转: Oracle中使用Table()函数解决For循环中不写成 in (l_idlist)形式的问题 在实际PL/SQL编程中,我们要对动态取出来的一组数据,进行For循环处理,其基本程序逻辑为: ...

  9. Oracle中动态SQL详解(EXECUTE IMMEDIATE)

    Oracle中动态SQL详解(EXECUTE IMMEDIATE) 2017年05月02日 18:35:48 悠悠倾我心 阅读数:744 标签: oracle动态sqloracle 更多 个人分类:  ...

随机推荐

  1. jQuery动画-圣诞节礼物

    ▓▓▓▓▓▓ 大致介绍 下午看到了一个送圣诞礼物的小动画,正好要快到圣诞节了,就动手模仿并改进了一些小问题 原地址:花式轮播----圣诞礼物传送 思路:动画中一共有五个礼物,他们平均分布在屏幕中,设置 ...

  2. 【原创分享·微信支付】 C# MVC 微信支付教程系列之扫码支付

    微信支付教程系列之扫码支付                  今天,我们来一起探讨一下这个微信扫码支付.何为扫码支付呢?这里面,扫的码就是二维码了,就是我们经常扫一扫的那种二维码图片,例如,我们自己添 ...

  3. 高频交易算法研发心得--MACD指标算法及应用

    凤鸾宝帐景非常,尽是泥金巧样妆. 曲曲远山飞翠色:翩翩舞袖映霞裳. 梨花带雨争娇艳:芍药笼烟骋媚妆. 但得妖娆能举动,取回长乐侍君王. [摘自<封神演义>纣王在女娲宫上香时题的诗] 一首定 ...

  4. javascript设计模式:策略模式

    前言 策略模式有效利用组合.委托.多态等技术和思想,可以有效避免多重条件选择语句. 策略模式对开放-封闭原则提供了很好的支持,将算法封装在strategy中,使得他们易于切换.理解.扩展. 策略模式中 ...

  5. MongoDB系列(二):C#应用

    前言 上一篇文章<MongoDB系列(一):简介及安装>已经介绍了MongoDB以及其在window环境下的安装,这篇文章主要讲讲如何用C#来与MongoDB进行通讯.再次强调一下,我使用 ...

  6. RIFF和WAVE音频文件格式

    RIFF file format RIFF全称为资源互换文件格式(Resources Interchange File Format),是Windows下大部分多媒体文件遵循的一种文件结构.RIFF文 ...

  7. ASP.NET MVC学习之母版页和自定义控件的使用

    一.母板页_Layout.cshtml类似于传统WebForm中的.master文件,起到页面整体框架重用的目地1.母板页代码预览 <!DOCTYPE html> <html> ...

  8. NOT IN 和NOT EXISTS

    今天写了一个简单的NOT IN语句,结果跟预期大相径庭,百度之发现深坑一个,遂录之. 登陆账户表logins code name status a admin N b guest N c member ...

  9. Configure a bridged network interface for KVM using RHEL 5.4 or later?

    environment Red Hat Enterprise Linux 5.4 or later Red Hat Enterprise Linux 6.0 or later KVM virtual ...

  10. 2015微软MVP全球峰会见闻

    2015.10.31-2015.11.8 一周的时间完成微软MVP全球峰会旅程,这一周在不断的倒时差,行程安排非常的紧张,还好和大家请假了没有更新微信公众号,今天开始继续更新微信公众号,开始新的旅程, ...