`
http_url
  • 浏览: 47283 次
  • 性别: Icon_minigender_1
  • 来自: 徐州
社区版块
存档分类
最新评论

oracle 中的函数

阅读更多

一 . 分析函数



    1.
   row_number

       

        用法说明:row_number 为有序组中的每一行返回一个唯一的排序值,序号由ORDER BY 子句指定,从1开始


        语法:  row_number() over ([partition by column] roder_by_clause) 


        [b]举例
:scott模式下的emp 表

SQL> select * from emp

 

     EMPNO ENAME                JOB                       MGR HIREDATE          SAL       COMM     DEPTNO
---------- -------------------- ------------------     ---------- ----------         ----------    ----------   ----------
      7369 SMITH                CLERK                    7902 17-12月-80        800                        20
      7499 ALLEN                SALESMAN              7698 20-2月 -81       1600        300         30
      7521 WARD                SALESMAN              7698 22-2月 -81       1250        500         30
      7566 JONES                MANAGER               7839 02-4月 -81       2975                       20
      7654 MARTIN              SALESMAN              7698 28-9月 -81       1250       1400        30
      7698 BLAKE                MANAGER                7839 01-5月 -81       2850                      30
      7782 CLARK                MANAGER                7839 09-6月 -81       2450                      10
      7788 SCOTT                ANALYST                 7566 19-4月 -87       3000                      20
      7839 KING                  PRESIDENT                       17-11月-81       5000                     10
      7844 TURNER              SALESMAN              7698 08-9月 -81       1500          0          30
      7876 ADAMS               CLERK                     7788 23-5月 -87       1100                      20
      7900 JAMES                CLERK                     7698 03-12月-81        950                       30
      7902 FORD                 ANALYST                 7566 03-12月-81       3000                       20
      7934 MILLER               CLERK                    7782 23-1月 -82       1300                      10



     使用函数 row_number 按工资排序编个号:-),看看谁第一。(注:工资相同的排名也不相同)

SQL> select ename,job,deptno,sal,row_number()over (order by sal desc) as sal_rank from emp;

 

ENAME                JOB                    DEPTNO       SAL   SAL_RANK
-------------------- ------------------ ----------   ---------- ----------
KING                 PRESIDENT              10         5000          1
SCOTT                ANALYST                 20         3000          2
FORD                 ANALYST                  20         3000          3
JONES                MANAGER                20         2975         4
BLAKE                MANAGER                30         2850          5
CLARK                MANAGER               10          2450          6
ALLEN                SALESMAN              30         1600          7
TURNER              SALESMAN              30         1500          8
MILLER               CLERK                    10         1300          9
WARD                 SALESMAN              30         1250         10
MARTIN               SALESMAN             30          1250         11
ADAMS                CLERK                    20         1100         12
JAMES                CLERK                     30          950          13
SMITH                CLERK                     20          800          14


   

下面看看在同一个部门下进行比比看谁的工资高:-)。(注:工资相同的排名也不相同)

SQL> select ename,job,deptno,sal,row_number() over (partition by deptno ORDER BY sal desc) ral_rank from emp;

 

ENAME                JOB                    DEPTNO        SAL   RAL_RANK
-------------------- ------------------ ---------- ----------         ----------
KING                 PRESIDENT                10       5000          1
CLARK                MANAGER                  10       2450          2
MILLER               CLERK                      10       1300           3
SCOTT                ANALYST                   20       3000          1
FORD                 ANALYST                    20       3000          2
JONES                MANAGER                  20       2975          3
ADAMS                CLERK                      20       1100          4
SMITH                CLERK                       20        800           5
BLAKE                MANAGER                  30       2850          1
ALLEN                SALESMAN                 30       1600          2
TURNER               SALESMAN                30       1500          3
WARD                 SALESMAN                30       1250           4
MARTIN               SALESMAN                30       1250           5
JAMES                CLERK                       30        950             6


2. rank 



   [b]  用法说明:
rank 函数计算一个值在一组值中的排位,排位是以1开头的连续整数。具有相等值的行排位相同,序数随后跳跃相应的数值,即:如果两行的序数为1,则没有序数2,下一行的序号为3.


   语法:rank () over([partition by colunm] order_by_clause)[/b]

    

   由于用法和row_number 想象(“具有相等值的行排位相同,序数随后跳跃相应的数值”就这点不同),这里只简单举例如下:

SQL> select ename,job,deptno,sal,rank () over (partition by deptno order by sal desc) denserank from emp;

 

ENAME                JOB                    DEPTNO        SAL   DENSERANK
-------------------- ------------------ ----------      ----------  ----------
KING                 PRESIDENT              10      5000          1
CLARK                MANAGER                10       2450        2
MILLER               CLERK                   10       1300          3
SCOTT                ANALYST                 20       3000          1
FORD                 ANALYST                  20       3000         1
JONES                MANAGER                20       2975          3
ADAMS                CLERK                     20       1100          4
SMITH                CLERK                      20        800           5
BLAKE                MANAGER                30       2850          1
ALLEN                SALESMAN               30       1600          2
TURNER               SALESMAN              30       1500          3
WARD                 SALESMAN               30       1250          4
MARTIN               SALESMAN               30       1250          4
JAMES                CLERK                       30        950           6

 

 

分享到:
评论

相关推荐

    oracle转成postgre时,oracle中函数的处理工具(orafce)

    迁移过程中,重要的是理解每个Oracle函数在PostgreSQL中的等价物,或者通过orafce提供的函数来模拟。这涉及到对两个数据库系统特性的深入理解,包括它们的数据类型、函数行为以及SQL语法差异。 在进行数据库迁移时...

    oracle中函数 trunc(),round(),ceil(),floor的使用详解

    1.round函数(四舍五入) 描述 : 传回一个数值,该数值是按照指定的小数位元数进行四舍五入运算的结果 参数: number : 欲处理之数值 decimal_places : 四舍五入 , 小数取几位 ( 预设为 0 ) select round(123.456, ...

    Oracle中实现Split函数功能

    Oracle 中实现 Split 函数功能 Oracle 中实现 Split 函数功能是指在 Oracle 数据库中实现类似于 C# 等编程语言中的 Split 函数,用于拆分字符的功能。下面是实现 Oracle 中 Split 函数功能的详细介绍。 首先,...

    ORACLE常用函数功能及演示

    ORACLE内置函数,相当于C语言中的库函数,提供了常规数据库编程中所需的绝大多数基本功能,并且通过函数的组合或嵌套使用,可以发挥其强大的功能。由于这些内置函数都是由ORACLE公司的编程大家所写,而且其执行代码...

    Oracle中的分析函数详解

    其中,Oracle的分析函数是其强大的特性之一,它允许用户在单个SQL查询中执行复杂的分析操作,而无需使用子查询或者自连接。这篇文档将深入探讨Oracle中的分析函数,帮助你更好地理解和利用这一功能。 一、什么是...

    Oracle内置函数PPT,让你临时抱佛脚

    以下是一些Oracle数据库中常用内置函数的详细说明: 1. **数字函数**: - `ABS(n)`:返回给定数值的绝对值,例如`ABS(-100)`返回100。 - `ACOS(n)`:返回弧度值,为n的反余弦,如`ACOS(3)`返回约1.26610。 - `...

    ORACLE函数介绍 全系列中文

    oracle函数介绍 1 著名函数之单值函数 pdf oracle函数介绍 2 非著名函数之单值函数 pdf oracle函数介绍 3 著名函数之聚合函数 pdf oracle函数介绍 4 非著名函数之聚合函数 pdf oracle函数介绍 5 分析函数简述 ...

    oracle自定义日期函数

    DATEADD 函数是 Oracle 日期处理函数中非常重要的一部分,它可以方便地添加指定的时间间隔到日期中,并且可以应用于各种日期处理场景。然而,DATEADD 函数也存在一些限制,例如只能添加指定的时间间隔到日期中,不能...

    Oracle 递归函数介绍

    在 Oracle 中,递归函数的定义语法如下所示: ```sql CREATE FUNCTION function_name ([parameter_list]) RETURN return_type {IS|AS} BEGIN ... ... END [function_name]; ``` 其中,`function_name` 是函数...

    oracle函数大全 oracle函数大全

    以下是关于Oracle函数的一些详细说明: 1. ASCII函数:ASCII函数返回与输入字符相对应的ASCII码,即十进制数字。例如,ASCII('A')返回65,ASCII('a')返回97。 2. CHR函数:CHR函数根据提供的整数返回对应的字符。...

    ORACLE CRC32函数

    在Oracle数据库中,`CRC32`函数是一种非常实用的功能,主要用于将字符类型的数据转换为一个唯一的数字类型,这一过程通常被称为散列(Hash)。通过该函数,可以方便地生成针对特定字符串的固定长度的数字签名,这...

    ORACLE分析函数教程

    ### Oracle分析函数详解 #### 一、Oracle分析函数概述 Oracle分析函数是在处理大量数据时极为有用的一套工具,主要...在实际应用中,根据具体的业务需求选择合适的分析函数,可以极大地提高数据分析的准确性和效率。

    oracle 函数大全 参考函数 手册 速查 chm格式

    Oracle函数是数据库操作中的核心组成部分,它们允许开发人员和DBA执行各种计算、转换、查询和数据处理任务。手册中可能涵盖了以下几类函数: 1. 数学函数:如ABS(取绝对值)、MOD(取模)、ROUND(四舍五入)等,...

    oracle函数大全

    oracle中的函数集合 SQL中的单记录函数、系统函数。Decode函数的语法结构如下: decode (expression, search_1, result_1) decode (expression, search_1, result_1, search_2, result_2) decode (expression, ...

    oracle函数大全(CHM格式).rar

    "Oracle函数大全(CHM格式).rar"这个压缩包显然包含了关于Oracle数据库中各种函数的详细信息,对于学习和查询Oracle函数是非常宝贵的资源。 CHM(Compiled Help Manual)格式是一种由Microsoft开发的帮助文件格式...

    oracle存储过程和函数写法

    oracle 的存储过程和函数的语法 如下

    oracle内置函数学习

    Oracle内置函数是数据库管理系统Oracle中不可或缺的一部分,它们用于执行各种数据处理任务,包括数学运算、字符串操作、日期处理等。这篇博文将深入探讨Oracle内置函数的学习,帮助你更好地理解和运用这些功能强大的...

    Oracle函数.chm

    Oracle函数.chm

    ORACLE操作XML函数

    ### ORACLE操作XML函数 #### 一、XMLTYPE_instance与XPath_string 在Oracle数据库中,`XMLTYPE`是一...这些函数提供了强大的工具来操作和管理Oracle数据库中的XML数据,使得开发者能够更加灵活地处理复杂的XML结构。

    Oracle函数返回表

    Oracle自定义函数返回一张表。主要用于生成一张等时间间隔的表数据。

Global site tag (gtag.js) - Google Analytics