`
wuliwei85
  • 浏览: 74945 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

oracle的几个函数,greatest,to_number,decode

阅读更多

一、用到这几个函数的情景:

 

数据库中,有一条记录的几个字段是以字符串形式存储的数据,其中有些是空的

 

现在假设这几个字段的值分别为 A='2048'、B='1024'、C=''

 

我想取出A、B、C三者的最大值,通过函数greatest(A,B,C)可以得到

 

但是问题来了,A、B、C都是字符串,要先转成数字,通过to_number(A)可以实现,

 

结合起来:greatest(to_number(A),to_number(B),to_number(C))

 

根据测试,因为C是空值,则to_number(C)也是空值,

从而greatest(to_number(A),to_number(B),to_number(C))也是空值

 

所以要用decode将空值变成0(根据各自的事迹情况来确定空值用什么来代替),decode(C,null,'0',C)

 

那么最终的函数为:greatest(to_number(A),to_number(B),to_number(decode(C,null,'0',C)))

 

 

函数解释:

 

1、GREATEST(n1,n2,...n) 返回序列中的最大值

 

2、LEAST(n1,n2....n) 返回序列中的最小值

 

3、TO_NUMBER(c[,fmt[,nls]]) 将char,nchar,varchar2,nvarchar2型字串按照fmt中指定格式转换为数值类型并返回。

 

4、DECODE(exp,s1,r1,s2,r2..s,r[,def]) 可以把它理解成一个增强型的if else,只不过它并不通过多行语句,而是在一个函数内实现if else的功能。exp做为初始参数。s做为对比值,相同则返回r,如果s有多个,则持续遍历所有s,直到某个条件为真为止,否则返回默认值def(如果指定了的话),如 果没有默认值,并且前面的对比也都没有为真,则返回空。

 

 

 

二、顺便讲讲substr、instr

 

假设某个字段A='1024/2048',我要将其分解成'1024'和'2048'

 

'1024'=substr(A,1,instr(A,'/')-1)

 

'2048'=substr(A,instr(A,'/')+1)

 

 

函数解释:

 

1、INSTR(c1,c2[,n1[,n2]]) 返回c2在c1中位置

c1:原字符串

c2:要寻找的字符串
n1:查询起始位置,正值表示从左到右,负值表示从右到左 (大小表示位置,比如3表示左面第3处开始,-3表示右面第3处开始)。如果为0的话,则返回的也是0
n2:第几个匹配项。大于0

 

2、SUBSTR(c1,n1[,n2]) 截取指定长度的字符串。稍不注意就可能充满了陷阱的函数。
n1:开始长度,如果n1=0 then n1=1,如果n1>0,则oracle从左向右确认起始位置截取,如果n1<0,则oracle从右向左数确认起始位置,如果n1>c1.length则返回空
n2:截取的字符串长度,如果为空,默认截取到字符串结尾

 

分享到:
评论

相关推荐

    oracle 10G函数大全(中文)

    Oracle 10G函数大全是Oracle数据库在10g版本中的一个重要参考资料,它包含了大量用于数据处理、查询优化以及数据库管理的内置函数。这个中文帮助文档是开发者和DBA们在进行Oracle数据库操作时的重要工具,它能提供...

    oracle 10G函数大全

    Oracle 10G是Oracle数据库的一个重要版本,其强大的功能和丰富的函数库使得数据库管理和开发更为高效。在Oracle 10G中,函数是SQL和PL/SQL编程中不可或缺的一部分,它们用于处理数据、进行计算、操作字符串以及执行...

    oracle系统内置函数大全

    Oracle数据库系统内置了大量函数,这些函数可以分为多个类别,例如字符函数、数字函数、日期函数、转换函数、分组函数以及其他辅助函数等。以下是对每个类别中一些常用函数的详细介绍: 字符函数 1. ASCII函数:...

    oracle基本函数

    以下将详细介绍Oracle中的几个主要函数类别: 1. **日期函数**: Oracle提供了多种处理日期和时间的函数,例如: - `SYSDATE`:返回当前系统的日期和时间。 - `ADD_MONTHS(date, months)`:在日期上增加指定的...

    oracle函数大全(分类显示).zip

    "Oracle函数大全(分类显示)"这个资源显然是为了帮助开发者更好地理解和使用Oracle中的各种函数。下面,我们将详细介绍Oracle数据库中的一些主要函数类别及其应用场景。 1. **数值函数**: - `ROUND`:对数字进行四...

    MYSQL,SQLSERVER,ORACLE常用的函数

    这些函数主要分为几大类:字符串处理函数、数值处理函数、日期处理函数、转换函数以及其他一些特殊用途的函数。 ### 字符串处理函数 #### 1. ASCII 返回与指定的字符对应的十进制数。例如: ```sql SELECT ASCII('...

    Oracle函数大全.pdf

    在Oracle数据库中,函数是一类预定义的子程序,它可以对输入参数执行运算,并返回一个结果值。Oracle提供了一系列的函数,用于处理不同类型的数据,如字符串、数字、日期和时间等。下面按照文档所提供的内容,详细...

    oracle函数.zip

    本资料“Oracle函数大全”将深入探讨这些函数,帮助用户更好地理解和使用Oracle数据库。 1. **数学函数** - ABS:返回一个数的绝对值。 - CEIL:向上取整到最接近的整数。 - FLOOR:向下取整到最接近的整数。 -...

    oracle中的函数总结

    本文将详细介绍一些常用的Oracle函数及其用法。 #### 1. Case 表达式 Case表达式可以根据一个或多个条件返回不同的值。下面是一个例子: ```sql SELECT CASE WHEN e.salary &gt; 2000 THEN e.salary ELSE 2000 ...

    Oracle函数列表

    Oracle函数是数据库管理中不可或缺的一部分,它用于处理和操作数据,执行各种计算和逻辑操作。Oracle提供了丰富的内置函数,涵盖了数学、字符串、日期、转换、系统等多种类型,以满足开发人员和DBA的需求。以下是对...

    oracle函数大全.doc

    ORACLE函数大全 ________________________________________ 作者:[本站编辑] 来源:[CSDN] 浏览:[ ] SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数; SQL&gt; select ascii('A') A,ascii('a') a,...

    ORACLE函数大全

    这里,我们将深入探讨"ORACLE函数大全"中包含的主要类别,包括字符串操作、日期处理以及统计计算。 一、字符串操作函数 1. CONCAT():用于连接两个或多个字符串,例如CONCAT('Hello', ' ', 'World')将返回'Hello ...

    oracle函数大全

    这个“Oracle函数大全”CHM文件将提供每个函数的详细描述、语法、参数、返回值和示例,是学习和查询Oracle函数的宝贵资源。无论你是初学者还是经验丰富的开发者,都能从中受益匪浅,提升你在Oracle数据库管理中的...

    ORACLE9I函数帮助(英文)

    5. **控制流函数**:如`IFNULL()`或`NVL()`用于处理空值,`DECODE()`提供条件判断功能,`GREATEST()`和`LEAST()`用于比较多个值并返回最大或最小值,这些函数在编写复杂的SQL语句和存储过程时十分有用。 6. **聚合...

    oracle_sql_function

    Oracle SQL 函数是数据库管理中不可或缺的一部分,它们用于处理和操作数据,使查询和数据分析更加高效和精确。在Oracle数据库系统中,SQL内置函数提供了多种功能,包括数值运算、字符串处理、日期时间操作以及各种...

    Oracle常用函数

    本文将详细介绍一些常用的Oracle函数,包括文本类、数值类、列表函数以及转换函数。 1. **文本类函数**: - `CONCAT(value1, value2)`:用于连接两个字符串,与`||`操作符功能相似。 - `INITCAP(value)`:将字符...

    oracle常用的100个函数

    以下是一些Oracle数据库中常用的100个函数的简要介绍: 1. **SELECT**:用于从表中检索数据的基础SQL语句。 2. **FROM**:指定要从中检索数据的表。 3. **WHERE**:用于过滤满足特定条件的行。 4. **GROUP BY**:将...

Global site tag (gtag.js) - Google Analytics