oracle中函数怎么使用方法,Oracle中函数的使用

1.decode ()

例子:它的写法如下decode('a','b','c','d'),其中a,b,c,d可以是其他函数也可以是数值,依据我们自己的情况来使用,它的含义是如果a=b,那么结果显示c,否则d。

翻译成我们更通俗易懂的话就是:

if(sex=1)

then return '男'

else

return ‘女’

decode(sex,1,'男','女‘’)

用法:DECODE(value,if1,then1,if2,then2,if3,then3,...,else),表示如果value 等于if1时,DECODE函数的结         果返回then1,...,如果不等于任何一个if值,则返回else。初看一下,DECODE 只能做等于测试,但刚才也看           到了,我们通过一些函数或计算替代value,是可以使DECODE函数具备大于、小于或等于功能。

c68e82ecbc6a4c190fa28b5c17a4f895.png

该函数的含义如下:

IF 条件=值1 THEN

RETURN(翻译值1)

ELSIF 条件=值2 THEN

RETURN(翻译值2)

......

ELSIF 条件=值n THEN

RETURN(翻译值n)

ELSE

RETURN(缺省值)

END IF

该函数的含义如下:

IF 条件=值1 THEN

RETURN(翻译值1)

ELSIF 条件=值2 THEN

RETURN(翻译值2)

......

ELSIF 条件=值n THEN

RETURN(翻译值n)

ELSE

RETURN(缺省值)

END IF

2.case ()

用法:case when 'a' then 'b' else 'c' end

例子1:case when sex=1

then '男'

else '女'

end

例子2:

CASE WHEN sex=1

THEN (case when age>=18

then '成年男人'

else ‘未成年男孩’

end)

ELSE (case when age>=18

then '成年女人'

else '未成年女孩'

3.concat(a,b)

用法:拼接字符串

例子:concat(a,’%’)给a加上%号

连接多个字符串用||

select title,concat(round((retail-cost)/cost*100),'%') from Tbl_Books;

select Category || ' - '  || Title as 图书类别 from tbl_books;

4.round(a,b)截取数字

格式如下:ROUND(number[,decimals])

其中:number

待做截取处理的数值

decimals 指明需保留小数点后面的位数。可选项,忽略它则截去所有的小数部分,并四舍五入。如果为负数则表示从小数点开始左边的位数,相应整数数字用0填充,小数被去掉。对截取的数字要四舍五入。

例子:select title,concat(round((retail-cost)/cost*100),'%') from Tbl_Books;

5.ceil(n)和floor(n)

ceil(n) 取大于等于数值n的最小整数;

例子:select title,ceil(cost) from Tbl_Books;

floor(n)取小于等于数值n的最大整数;

6.trunc函数处理数字

trunc函数返回处理后的数值,其工作机制与ROUND函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去。

其具体的语法格式如下

TRUNC(number[,decimals])

其中:

number 待做截取处理的数值

decimals 指明需保留小数点后面的位数。可选项,忽略它则截去所有的小数部分。

例子:select title,cost,retail,trunc(cost),trunc(retail) from Tbl_Books;

7.lpad( string, padded_length, [ pad_string ] )

string

准备被填充的字符串;

padded_length

填充之后的字符串长度,也就是该函数返回的字符串长度,如果这个数量比原字符串的长度要短,lpad         函数将会把字符串截取成从左到右的n个字符;

pad_string

填充字符串,是个可选参数,这个字符串是要粘贴到string的左边,如果这个参数未写,lpad函数将会           在string的左边粘贴空格。

例子:select lpad(Customer_name || '/' || address || '/' || city,80) as 顾客信息 from Tbl_Customer;

8.substr(字符串,截取开始位置,截取长度) //返回截取的字;

例子:select substr(Name,0,4) as 出版社,substr(Contact,0,1) as 姓 from Tbl_Publisher;

9.replace()

含义为:替换字符串

replace(原字段,“原字段旧内容“,“原字段新内容“,)

select customer_name, replace(city,'上海','ShangHai') as city from Tbl_Customer;

10.NULLIF ( expression1, expression2)

返回类型与第一个 expression1相同。

输出结果:

如果两个表达式不相等,NULLIF 返回第一个 expression1的值。

如果两个表达式相等,NULLIF 返回空值NULL。

返回类型与第一个 expression1相同。

输出结果:

如果两个表达式不相等,NULLIF 返回第一个 expression1的值。

如果两个表达式相等,NULLIF 返回空值NULL。

例子:select Customer_name ,nullif(nullif(City,'北京'),'上海') from tbl_customer;

11.Posstr(a,b)返回b在a中的位置

例子:select posstr(title,'子') from Tbl_Books;

oracle中函数和存储过程的区别和联系【转载竹沥半夏】

oracle中函数和存储过程的区别和联系[转载竹沥半夏] 在oracle中,函数和存储过程是经常使用到的,他们的语法中有很多相似的地方,但也有自己的特点.刚学完函数和存储过程,下面来和大家分享一下自己 ...

Oracle中函数/过程返回结果集的几种方式

原文 Oracle中函数/过程返回结果集的几种方式 Oracle中函数/过程返回结果集的几种方式:    以函数return为例,存储过程只需改为out参数即可,在oracle 10g测试通过.    ...

Oracle中函数/过程返回多个值(结果集)

Oracle中函数/过程返回结果集的几种方式: 以函数return为例,存储过程只需改为out参数即可,在oracle 10g测试通过. (1) 返回游标: return的类型为:SYS_REFCUR ...

oracle中函数和存储过程的区别和联系

oracle中函数和存储过程的区别和联系 在oracle中,函数和存储过程是经常使用到的,他们的语法中有很多相似的地方,但也有自己的特点.刚学完函数和存储过程,下面来和大家分享一下自己总结的关于函数和 ...

ORACLE中函数MONTHS_BETWEEN的使用

格式:MONTHS_BETWEEN(DATE1,DATE2) MONTHS_BETWEEN函数返回两个日期之间的月份数. SQL> ', 'yyyymmdd')) as months from ...

oracle中函数

一:前言 最近决定每天都把知识点总结下,然后每个星期把知识点在进行分类发表日志. 二:The Question (1):在oracle中进行年龄的计算,知道出生日期进行计算后截取,本来是一个很简单的函 ...

Oracle中函数如何返回结果集

在Oracle中,用函数返回结果集有时候要用到,下面是demo: 1 2 3 4 5 6 7 create or replace type t_test as object ( id integer, ...

数据库ORACLE中函数decode的用法

Decode函数与一系列嵌套的 IF-THEN-ELSE语句相似 decode()函数简介: 使用方法: Select decode(columnname,值1,翻译值1,值2,翻译值2,...值n, ...

Oracle中函数关键字简介

常用的语法:select--from--where--group by--having--order by 1.分组子句group by +con 按什么分组 2.having子句  对上面分组的数据 ...

随机推荐

Unit01: JAVA开发环境案例

Top JAVA Fundamental DAY01 JDK及Eclipse目录结构操作 JDK的安装及配置 控制台版的JAVA HelloWorld 使用Eclipse开发Java应用程序 1 JD ...

C#指针操作Marshal实例

static void Main(string[] args) { ,,,}; ,,,}; IntPtr pt = Marshal.AllocHGlobal(a.Length); //从source数 ...

xcode 6.4 安装Alcatraz失败解决方法

Alcatraz Xcode6.4安装不了解决方法http://www.cocoachina.com/bbs/read.php?tid=310380 版权声明:本文为博主原创文章,未经博主允许不得转载 ...

javascript——处理(获取)浏览器版本、操作系统

javascript——处理(获取)浏览器版本.操作系统 /** * Created by Administrator on 15-1-12. */ function BroswerUtil() { ...

关于lucene的IndexSearcher单实例,对于索引的实时搜索

Lucene版本:3.0 一般情况下,lucene的IndexSearcher都要写成单实例,因为每次创建IndexSearcher对象的时候,它都需要把索引文件加载进来,如果访问量比较大,而索引也比 ...

PHP中实现在数据库中的增、删、查、改

其实要想在PHP中访问并获取到数据库中的数据其实并不难,下面我以例子为大家介绍: 首先,打开PHP软件和WampServer服务,确保在WampServer中的phpMyAdmin中有你要使用的数据表 ...

Activtiy完全解析(一、Activity的创建过程)

转载请标明出处: http://blog.csdn.net/xmxkf/article/details/52452218 本文出自:[openXu的博客]   在Android开发过程中,我们几乎每天 ...

JavaSE基础知识(5)—面向对象(对象数组和对象关联)

一.对象数组 1.说明 数组的定义类型为对象类型 2.动态初始化 1.声明并开辟空间 Person[] pers = new Person[长度];2.赋值 for(int i=0;i

Nginx使用教程(三):Nginx配置性能优化之I/O和TCP配置

配置Nginx I/O
Sendfile 当应用程序传输文件时,内核首先缓冲数据,然后将数据发送到应用程序缓冲区. 应用程序反过来将数据发送到目的地. Sendfile方法是一 ...

tensorflow--variable_scope

1.with tf.variable_scope(name , reuse = reuse) (1)创建variable scope with tf.variable_scope("foo& ...

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值