oracle数据库中decode函数的使用

语法

decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)

函数含义

IF条件=值1THEN

RETURN(返回值1)

ELSIF条件=值2THEN

RETURN(返回值2)

......

ELSIF条件=值nTHEN

RETURN(返回值n)

ELSE

RETURN(缺省值)

ENDIF

注意,后面的缺省值是可以不写的。

select lb.contno,
decode(cont.conttype, ‘1‘, cont.appntno, ‘2‘, cont.insuredno),
decode(cont.conttype, ‘1‘, cont.appntname, ‘2‘, cont.insuredname),
to_date(lb.create_time),
to_char(lb.sum_total, ‘9999999990.99‘),
to_char(lb.sum_price, ‘9999999990.99‘),
to_char(lb.sum_tax, ‘9999999990.99‘),
lb.sid,
lb.managecom
from LIS_BUSI_TRANSACTIONS lb, lccont cont
where cont.contno = lb.contno
and lb.invoiceflag in (‘00‘)
and lb.successflag = ‘1‘
and not exists
(select 1 from lcgrpcont c where c.grpcontno = lb.contno)
and lb.sum_total > 0
and (cont.currency = ‘01‘ or cont.currency is null)
and not exists (select 1
from ljagetendorse a, LIS_BUSI_TRANSACTIONS b
where a.actugetno = b.sourceid
and a.getflag = ‘1‘
and b.ruleid in (‘3‘, ‘6‘, ‘10‘, ‘12‘)
and a.actugetno = lb.sourceid
and b.sid = lb.sid)

原文地址:https://www.cnblogs.com/dongyaotou/p/12228010.html

时间: 2024-10-03 18:48:10

oracle数据库中decode函数的使用的相关文章

Oracle数据库中的函数

1.随机数函数:DBMS_RANDOM.RANDOM 1 SELECT ABS(MOD(DBMS_RANDOM.RANDOM,100)) FROM DUAL; --产生一个100以内的随机数 2 SELECT TRUNC(100+900*dbms_random.value) FROM dual; --产生一个100-1000之间的随机数 3 SELECT dbms_random.value FROM dual; --产生一个0-1之间的随机数 4 SELECT dbms_random.value

Oracle 中 decode 函数用法

Oracle 中 decode 函数用法 含义解释:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下:IF 条件=值1 THEN RETURN(翻译值1)ELSIF 条件=值2 THEN RETURN(翻译值2) ......ELSIF 条件=值n THEN RETURN(翻译值n)ELSE RETURN(缺省值)END IFdecode(字段或字段的运算,值1,值2,值3) 这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值

Oracle数据库中调用Java类开发存储过程、函数的方法

Oracle数据库中调用Java类开发存储过程.函数的方法 时间:2014年12月24日  浏览:5538次 oracle数据库的开发非常灵活,不仅支持最基本的SQL,而且还提供了独有的PL/SQL,除此之外,还可以用时下最流行的编程语言Java来做开发.随着对oracle的了解越来越多,越来越禁不住oracle的诱惑,oracle技术真的是一门很有趣的学问.之前,我在博客中总结了挺多有关SQL.PL/SQL的,但是对于oracle数据库中Java类的调用却没有总结,也是因为之前不太会,这会儿总

如何处理Oracle数据库中的坏块问题

本文主要介绍如何去处理在Oracle数据库中出现坏块的问题,对于坏块产生在不同的对象上,处理的方法会有所不同,本文将大致对这些方法做一些介绍.因为数据库运行时间长了,由于硬件设备的老化,出现坏块的几率会越来越大,因此,做为一个DBA,怎么去解决数据库出现的坏块问题就成了一个重要的议题了. 一:什么是数据库的坏块   首先我们来大概看一下数据库块的格式和结构 数据库的数据块有固定的格式和结构,分三层:cache layer,transaction layer,data layer.在我们对数据块进

给Oracle数据库中CLOB字段插入空值

遇到往ORACLE数据库中插入数据时总是报ORA-01084 invalid argument in OCI call错误,经分析是因为表中的一个字段类型为CLOB,并且可为空,当在给该字段插入空值时引发的该错误.后来判断是否为空值,如果为空值使用DBNull.Value,以此解决了该问题. Null 指的是无效的对象引用:而 DBNull 是一个类, DBNull.Value 是它唯一的实例 .DBNull 的实例 DBNull.Value是数据库表中的空数据在 .Net 代码中的表现形式.我

sqlserver 数据库中时间函数的建立

create function [dbo].[HtoSec](@lvalue as int)RETURNS intBEGINDECLARE @temp intSet @temp = @lvalue * 60 * 60RETURN @tempEND create function [dbo].[GetTime](@dtmValue as datetime)RETURNS intBEGINDECLARE @temp intDECLARE @GMT_TIMEZONE intSET @GMT_TIMEZ

Oracle数据库中的blob类型解析

Oracle的Blob字段比较特殊,他比long字段的性能要好很多,可以用来保存例如图片之类的二进制数据. 写入Blob字段和写入其它类型字段的方式非常不同,因为Blob自身有一个cursor,你必须使用cursor对blob进行操作,因而你在写入Blob之前,必须获得cursor才能进行写入,那么如何获得Blob的cursor呢? 这需要你先插入一个empty的blob,这将创建一个blob的cursor,然后你再把这个empty的blob的cursor用select查询出来,这样通过两步操作

解决oracle数据库中 ORA-01843: 无效的月份问题

1.这是因为客户端是中文环境,格式mon就不能用英文的月份写法,必须用中文的“六月”如果不想修改sql语句运行的话,就需要在执行该语句之前,使用alter session 命令将nls_date_language修改为american,如下:alter session set nls_date_language='american'以英语显示日期. 2若你的客户端是英文环境,那就是你没有用oracle数据的时间函数查询数据,应在sql语句中使用oracle数据库中的时间函数.

如何使用 JDBC 调用存储在数据库中的函数或存储过程

JDBC调用存储过程步骤:1 通过Connection对象的prepareCall()方法创建一个CallableStatement对象的实例.在使用Connection对象的prepareCall()方法时,需要传入一个String类型的字符串,该字符串用于指明如何调用存储过程{?= call <procedure-name>[(<arg1>,<arg2>, ...)]} {call <procedure-name>[(<arg1>,<a