python decode函数的用法_decode函数的用法

python decode函数的用法_decode函数的用法DECODE函数是ORACLEPL/SQL是功能强大的函数之一,目前还只有ORACLE公司的SQL提供了此函数,其他数据库厂商的SQL实现还没有此功能。DECODE有什么用途呢?先构造一个例子,假设我们想给智星职员加工资,其标准是:工资在8000元以下的将加20%;工资在8000元以上的加15%,通常的做法是,先选出记录中的工资字段值?selectsalaryintovar-salar…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

DECODE函数是ORACLE PL/SQL是功能强大的函数之一,目前还只有ORACLE公司的SQL提供了此函数,其他数据库厂商的SQL实现还没有此功能。DECODE有什么用途呢? 先构造一个例子,假设我们想给智星职员加工资,其标准是:工资在8000元以下的将加20%;工资在8000元以上的加15%,通常的做法是,先选出记录中的工资字段值? select salary into var-salary from employee,然后对变量var-salary用if-then-else或choose case之类的流控制语句进行判断。 如果用DECODE函数,那么我们就可以把这些流控制语句省略,通过SQL语句就可以直接完成。如下:select decode(sign(salary – 8000),1,salary*1.15,-1,salary*1.2,salary from employee 是不是很简洁? DECODE的语法:DECODE(value,if1,then1,if2,then2,if3,then3,…,else),表示如果value等于if1时,DECODE函数的结果返回then1,…,如果不等于任何一个if值,则返回else。初看一下,DECODE 只能做等于测试,但刚才也看到了,我们通过一些函数或计算替代value,是可以使DECODE函数具备大于、小于或等于功能。

decode()函数使用技巧

·软件环境:

1、Windows NT4.0+ORACLE 8.0.4

2、ORACLE安装路径为:C:\ORANT

·含义解释:

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 IF

· 使用方法:

1、比较大小

select decode(sign(变量1-变量2),-1,变量1,变量2) from dual; –取较小值

sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1

例如:

变量1=10,变量2=20

则sign(变量1-变量2)返回-1,decode解码结果为“变量1”,达到了取较小值的目的。

2、表、视图结构转化

现有一个商品销售表sale,表结构为:

month    char(6)      –月份

sell    number(10,2)   –月销售金额

现有数据为:

200001  1000

200002  1100

200003  1200

200004  1300

200005  1400

200006  1500

200007  1600

200101  1100

200202  1200

200301  1300

想要转化为以下结构的数据:

year   char(4)      –年份

month1  number(10,2)   –1月销售金额

month2  number(10,2)   –2月销售金额

month3  number(10,2)   –3月销售金额

month4  number(10,2)   –4月销售金额

month5  number(10,2)   –5月销售金额

month6  number(10,2)   –6月销售金额

month7  number(10,2)   –7月销售金额

month8  number(10,2)   –8月销售金额

month9  number(10,2)   –9月销售金额

month10  number(10,2)   –10月销售金额

month11  number(10,2)   –11月销售金额

month12  number(10,2)   –12月销售金额

结构转化的SQL语句为:

create or replace view

v_sale(year,month1,month2,month3,month4,month5,month6,month7,month8,month9,month10,month11,month12)

as

select

substrb(month,1,4),

sum(decode(substrb(month,5,2),’01’,sell,0)),

sum(decode(substrb(month,5,2),’02’,sell,0)),

sum(decode(substrb(month,5,2),’03’,sell,0)),

sum(decode(substrb(month,5,2),’04’,sell,0)),

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160080.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • oracle恢复表数据

    oracle恢复表数据误删表或者deletefromXXX没有带条件清空表后不要慌,能恢复的,咱有flashbacktable咱怕啥只要删除的人没有加PURGE就好。oracle还是够抗造的一、删表恢复flashbacktabletablename_has_deletedtobeforedrop二、清表数据恢复1.确认一下数据对不对,是不是你想恢复的节点select*fromTABLENAME_DATA_CLEANEDasoftimestampto_timestamp(‘误操作的

    2022年9月23日
    0
  • 什么是索引?Mysql目前主要的几种索引类型「建议收藏」

    什么是索引?Mysql目前主要的几种索引类型「建议收藏」一、索引MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索引包含多个列。创建索引时,你需要确保该索引是应用在SQ…

    2022年4月30日
    109
  • Android开发-API指南- Calendar Provider

    Android开发-API指南- Calendar ProviderAndroid官方文档原创译文《CalendarProvider》。CalendarProvider是用来存放用户日历事件(event)的数据库。通过CalendarProvider的

    2022年7月1日
    24
  • android studio的问题整理

    今天打算尝试使用android stutio,试试效果如何,遇到的问题就在这里整理出来 刚才遇到的:Android studio无法启动,错误信息: “Files in E:\Android\android-studio\system\caches are locked. Android Studio will not be able to start up.”尝试使用管理员权

    2022年3月10日
    61
  • Node.js最新最详细安装教程(2020)

    Node.js最新最详细安装教程(2020)2020最新-Node.js详细安装教程(2020)

    2022年7月16日
    13
  • idea创建maven项目时一直在 Process Running[通俗易懂]

    idea创建maven项目时一直在 Process Running[通俗易懂]今天打算用idea写个maven项目时,创建到最后就一直在加载。等了大概20分钟,还在Process Running,我就等不下去了,各种查资料,最终解决了这个问题,写篇笔记,以防后期所需。解决方案:1、设置maven的配置 File—>Settings(Ctrl+Alt+S)—>Build—>Build Tools—>Maven—&…

    2022年6月13日
    51

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号