甲骨文中解码函数如何使用

  介绍

这篇文章将为大家详细讲解有关甲骨文中解码函数如何使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

函数介绍:

解码函数是Oracle PL/SQL的功能强大的函数之一,目前还只有甲骨文公司的SQL提供了此函数,其它数据库厂商的SQL实现还没有此功能.DECODE有什么用途呢?,,,,,先构造一个例子,假设我们想给这些职员加工资,其标准是:工资在8000元以下的加20%;工资在8000元或以上的加15%,通常的做法是,先选出记录中的工资字段值——→选择从员工工资到var-salary,然后对变量var-salary用if - then - else或情况,然后其他结束之类的流控制语句进行判断。如果用解码函数,那么我们就可以把这些流控制语句省略,通过SQL语句就可以直接完成。如下:

 select 解码(标志(salary 作用;8000),1,工资* 1.15,1,工资* 1.2,工资* 1.15),
  得到员工

是不是很简洁?解码的语法:解码(价值,i, then1,如果then2, if3, then3,…,其他),表示如果等价值于i时,解码函数的结果返回then1,……,如果不等于任何一个如果值,则返回。初看一下,解码只能做等于测试,但刚才也看到了,我们通过一些函数或计算替代价值,是可以使解码函数具备大于,小于或等于功能的。

<强> 1,比较大小
选择解码(标志(变量1 -变量2),1,变量1,变量2)双;——取较小值
标志()函数根据某个值是0,正数还是负数,分别返回0,1,1
例如:
变量1=10,变量2=20
则标志(变量1 -变量2)返回1,解码解码结果为“变量1”,达到了取较小值的目的。

<强> 2,表,视图结构转化
现有一个商品销售表,表结构为:
月char(6)——月份
销售数量(10,2)——月销售金额

现有数据为:
200001
1000 200002 1100 200003 1200

200004
1300 200005 1400 200006
1500
200007 1600 200101
1100
200202 1200 200301 1300


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

年,char (4),,——年份
month2数字(10,2)——1月销售金额
month3数(10,2)——2月销售金额
month4数(10,2)——3月销售金额
month5数(10,2)——4月销售金额
month6数(10,2)——5月销售金额
month7数(10,2)——6月销售金额
month7数量(10,2)——7月销售金额
month8数量(10,2)8月销售金额
month9数量(10,2)——9月销售金额
month20,2号(10日),——10月销售金额
month21,,数量(10,2)——11月销售金额
month22数量(10,2),——12月销售金额

结构转化的SQL语句为:

v_sale创建或替换视图(month2, month3、month4 month5, month6, month7, month7, month8, month9, month20, month21, month22)
,
选择
substrb(4月1日),
总和(解码(substrb(月5 2),& # 39;01 & # 39;,出售,0)),
总和(解码(substrb(月5 2),& # 39;02 & # 39;,出售,0)),
总和(解码(substrb(月5 2),& # 39;03 & # 39;,出售,0)),
总和(解码(substrb(月5 2),& # 39;04 & # 39;,出售,0)),

补充1:
有学生成绩表学生,现在要用解码函数实现以下几个功能:成绩在85年显示优秀;在70年显示良好;在60及格,否则是不及格。
假设学生的编号为id,成绩为分数,那么:选择id
,
解码(标志(得分- 85),,
1, & # 39;优秀& # 39;,,
0, & # 39;优秀& # 39;,
1,解码(标志(得分- 70),
1, & # 39;良好& # 39;,
0, & # 39;良好& # 39;,
1,解码(标志(score-60),
1, & # 39;及格& # 39;,
0, & # 39;及格& # 39;,
1, & # 39;不及格& # 39;)))从学生
,

补充2:
解码函数的语法结构如下:
解码(表情,search_1 result_1)
解码(表情,search_1、result_1 search_2, result_2)
解码(表情,search_1、result_1 search_2, result_2, ....、search_n result_n)
解码(表情,search_1 result_1,违约)
解码(表情,search_1、result_1 search_2, result_2,默认)
解码(表情,search_1、result_1 search_2, result_2, ....,result_n search_n默认)

解码函数比较表达式和搜索字,如果匹配返回结果,如果不匹配,返回默认值,如果未定义默认值,则返回空值。

关于甲骨文中解码函数如何使用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

甲骨文中解码函数如何使用