百度
360搜索
搜狗搜索

decode函数,DECODE函数的用法?怎么用详细介绍

本文目录一览: decode函数的函数介绍

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

SQL中 decode()函数简介

DECODE函数,是ORACLE公司的SQL软件ORACLE
PL/SQL所提供的特有函数计算方式,以其简洁的运算方式,可控的数据模型和灵活的格式转换而闻名。
今天看别人的SQL时看这里面还有decode()函数,以前从来没接触到,上网查了一下,还挺好用的一个函数,写下来希望对朋友们有帮助哈!
decode()函数简介:
主要作用:将查询结果翻译成其他值(即以其他形式表现出来,以下举例说明);
使用方法:
Select
decode(columnname,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)
From
talbename
Where

其中columnname为要选择的table中所定义的column,
·含义解释:
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
注:其中缺省值可以是你要选择的column
name
本身,也可以是你想定义的其他值,比如Other等;
举例说明:
现定义一table名为output,其中定义两个column分别为monthid(var型)和sale(number型),若sale值=1000时翻译为D,=2000时翻译为C,=3000时翻译为B,=4000时翻译为A,如是其他值则翻译为Other;
SQL如下:
Select
monthid
,
decode
(sale,1000,'D',2000,'C',3000,'B',4000,'A','Other')
sale
from
output
特殊情况:
若只与一个值进行比较
Select
monthid
,decode(sale,
NULL,‘---',sale)
sale
from
output
另:decode中可使用其他函数,如nvl函数或sign()函数等;
NVL(EXPR1,EXPR2)
若EXPR1是NULL,则返回EXPR2,否则返回EXPR1.
SELECT
NAME,NVL(TO_CHAR(COMM),'NOT
APPLICATION')
FROM
TABLE1;
如果用到decode函数中就是
select
monthid,decode(nvl(sale,6000),6000,'NG','OK')
from
output
sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1,
如果取较小值就是
select
monthid,decode(sign(sale-6000),-1,sale,6000)
from
output,即达到取较小值的目的。
小结:
作用:将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式。当然,假如未能与任何一个实参序偶匹配成功,则函数也有默认的返回值。
区别于SQL的其它函数,DECODE函数还能识别和操作空值。
语法:DECODE(control_value,value1,result1[,value2,result2…][,default_result]);
control
_value试图处理的数值。DECODE函数将该数值与后面的一系列的偶序相比较,以决定返回值。
value1是一组成序偶的数值。假如输入数值与之匹配成功,则相应的结果将被返回。对应一个空的返回值,可以使用要害字NULL于之对应
result1
是一组成序偶的结果值。
default_result
未能与任何一个值匹配时,函数返回的默认值。

decode 函数是什么意思

decode的几种用法
1:使用decode判断字符串是否一样
DECODE(value,if1,then1,if2,then2,if3,then3,...,else)
含义为
IF 条件=值1 THEN
RETURN(value 1)
ELSIF 条件=值2 THEN
RETURN(value 2)
......
ELSIF 条件=值n THEN
RETURN(value 3)
ELSE
RETURN(default)
END IF
sql测试
select empno,decode(empno,7369,'smith',7499,'allen',7521,'ward',7566,'jones','unknow') as name from emp where rownum<=10
输出结果
7369 smith
7499 allen
7521 ward
7566 jones
7654 unknow
7698 unknow
7782 unknow
7788 unknow
7839 unknow
7844 unknow
2:使用decode比较大小
select decode(sign(var1-var2),-1,var 1,var2) from dual
sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1
sql测试
select decode(sign(100-90),-1,100,90) from dual
输出结果
90
100-90=10>0 则会返回1,所以decode函数最终取值为90
反正
select decode(sign(100-90),1,100,90) from dual
输出结果
100
100-90=10>0返回1,判断结果为1,返回第一个变量100,最终输出结果为100
3:使用decode函数分段
工资大于5000为高薪,工资介于3000到5000为中等,工资小于3000为低薪
sql测试
SELECT
ename,sal,
DECODE(SIGN(sal - 5000),
1,
'high sal',
0,
'high sal',
- 1,
DECODE(SIGN(sal - 3000),
1,
'mid sal',
0,
'mid sal',
- 1,
DECODE(SIGN(sal - 1000),
1,
'low sal',
0,
'low sal',
- 1,
'low sal')))
FROM
emp
输出结果
SMITH 800 low sal
ALLEN 1600 low sal
WARD 1250 low sal
JONES 2975 low sal
MARTIN 1250 low sal
BLAKE 2850 low sal
CLARK 2450 low sal
SCOTT 3000 mid sal
KING 5000 high sal
TURNER 1500 low sal
ADAMS 1100 low sal
JAMES 950 low sal
FORD 3000 mid sal
MILLER 1300 low sal
4:利用decode实现表或者试图的行列转换
sql测试
SELECT
SUM(DECODE(ENAME,'SMITH',SAL,0)) SMITH,
SUM(DECODE(ENAME,'ALLEN',SAL,0)) ALLEN,
SUM(DECODE(ENAME,'WARD',SAL,0)) WARD,
SUM(DECODE(ENAME,'JONES',SAL,0)) JONES,
SUM(DECODE(ENAME,'MARTIN',SAL,0)) MARTIN FROM EMP
输出结果如下
SMITH ALLEN WARD JONES MARTIN
800 1600 1250 2975 1250
5:使用decode函数来使用表达式来搜索字符串
decode (expression, search_1, result_1, search_2, result_2, ...., search_n, result_n, default)
decode函数比较表达式和搜索字,如果匹配,返回结果;如果不匹配,返回default值;如果未定义default值,则返回空值。
sql测试
SELECT
ENAME,
SAL,
DECODE(INSTR(ENAME, 'S'),
0,
'不含有s',
'含有s') AS INFO
FROM
EMP
输出结果
SMITH 800 含有s
ALLEN 1600 不含有s
WARD 1250 不含有s
JONES 2975 含有s
MARTIN 1250 不含有s
BLAKE 2850 不含有s
CLARK 2450 不含有s
SCOTT 3000 含有s
KING 5000 不含有s
TURNER 1500 不含有s
ADAMS 1100 含有s
JAMES 950 含有s
FORD 3000 不含有s
MILLER 1300 不含有s
decode是解码的意思,这个函数很多都有,比如js里面有,数据库中应该没有的

阅读更多 >>>  vlookup函数精确匹配,vlookup函数的使用方法精确匹配

mysql的decode函数

mysql的decode函数与oracle的decode函数是不一样的,mysql的decode函数是解密函数,与之对应的是encode函数。
encode加密函数
decode解密函数
select encode('ddss','123');第一个参数为加密字符串、第二个参数为加密密码
MySQL 5.7中不推荐使用encode、decode函数,会在后续版本中删除,不再使用。
mysql中执行help encode或? functions,查看帮助信息。

DECODE函数的用法?怎么用

【答案】: DECODE的语法的语法:(value,if1,then1,if2,then2,if3,then3,...,else),表示如果value等于if1时,DECODE函数的结果返回then1,...,如果不等于任何一个if值,则返回else。初看一下,DECODE只能做等于测试,但可通过一些函数或计算替代value是可以使DECODE函数具备大于、小于或等于功能。还可以转化表结构。

decode函数的用法法请教

oracle
decode函数
使用方法:
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、此函数用在sql语句中,功能介绍如下:
decode函数与一系列嵌套的
if-then-else语句相似。base_exp与compare1,compare2等等依次进行比较。如果base_exp和
第i
个compare项匹配,就返回第i
个对应的value
。如果base_exp与任何的compare值都不匹配,则返回default。每个compare值顺次求值,如果发现一个匹配,则剩下的compare值(如果还有的话)就都不再求值。一个为null的base_exp被认为和null
compare值等价。如果需要的话,每一个compare值都被转换成和第一个compare
值相同的数据类型,这个数据类型也是返回值的类型。

oracle中decode函数有什么用?

DECODE函数相当于一条件语句(IF).它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式。当然,如果未能与任何一个实参序偶匹配成功,则函数也有默认的返回值。区别于SQL的其它函数,DECODE函数还能识别和操作空值.
其具体的语法格式如下:
DECODE(input_value,value,result[,value,result…][,default_result]);
其中:
input_value
试图处理的数值。DECODE函数将该数值与一系列的序偶相比较,以决定最后的返回结果
value
是一组成序偶的数值。如果输入数值与之匹配成功,则相应的结果将被返回。对应一个空的返回值,可以使用关键字NULL于之对应
result
是一组成序偶的结果值
default_result
未能与任何一序偶匹配成功时,函数返回的默认值
下面的例子说明了,如何读取用户CHECKUP表SEAPARK中的BLOOD_TEST_FLAG列下的项目,作为DECODE函数的实参支持值。
SELECT
checkup_type,
DECODE(blood_test_flag,’Y’,’Yes’,’N’,’No’,NULL,’None’,’Invalid’)
FROM
checkup;

Oracle数据库Decode()函数的使用方法

  DECODE函数的作用 它可以将输入数值与函数中的参数列表相比较 根据输入值返回一个对应值 函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式 当然 如果未能与任何一个实参序偶匹配成功 则函数也有默认的返回值
  DECODE函数的作用 它可以将输入数值与函数中的参数列表相比较 根据输入值返回一个对应值 函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式 当然 如果未能与任何一个实参序偶匹配成功 则函数也有默认的返回值
  区别于SQL的其它函数 DECODE函数还能识别和操作空值
  语法如下
  DECODE(control_value value result [ value result …][ default_result]);

  control _value
  试图处理的数值 DECODE函数将该数值与后面的一系列的偶序相比较 以决定返回值
  value
  是一组成序偶的数值 如果输入数值与之匹配成功 则相应的结果将被返回 对应一个空的返回值 可以使用关键字NULL于之对应
  result
  是一组成序偶的结果值
  default_result 未能与任何一个值匹配时 函数返回的默认值
  示例如下
  select decode( x ‘x is ’ ‘x is ’ ‘others’) from dual
  当x等于 时 则返回‘x is ’
  当x等于 时 则返回‘x is ’
  否则 返回others’
  在需要比较 个值的时候 我们可以配合SIGN()函数一起使用
  SELECT DECODE( SIGN( ) Is Positive Is Nagative Is Zero )
  同样 也可以用CASE实现
  SELECT CASE SIGN( )
  WHEN THEN Is Positive
  WHEN  THEN Is Nagative
  ELSE  Is Zero END
  FROM DUAL
  另外 大家还可以在Order by中使用Decode
  例 表table_subject 有subject_name列 要求按照 语 数 外的顺序进行排序 这时 就可以非常轻松的使用Decode完成要求了
lishixinzhi/Article/program/Oracle/201311/19054

matlab用encode和decode函数

matlab用encode和decode函数
答:1. decode:其它码–>unicode decode 的作用是将其他编码的字符串转换成 unicode 编码,如 str1.decode(‘gb2312’),表 示将gb2312 编码的
2. encode:unicode–>其它码 encode 的作用是将 unicode 编码转换成其他编码的字符串,如 str2.encode(‘gb2312’),表 示将unicode 编码的字符
CSDN编程社
encode() decode() 编码解码函数 - wendy587436的博客 - CSDN博客 - matlab...
2018年8月30日print(bs) s1 = bs.decode('utf-8')# 解码成unicode编码print(s1)

decode()函数怎么用?

decode(condition,1,a,2,b,3,c,d)
condition是对某字段判断的条件
判断的结果是1,那么decode返回a,以此类推,最后所有结果都不在其中则返回d
结果1,a;2,b;3,c等可以多个
比如:select decode(column1,null,'空',1,'壹',2,'贰',3,'叁','其他') from table1

网站数据信息

"decode函数,DECODE函数的用法?怎么用"浏览人数已经达到21次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:decode函数,DECODE函数的用法?怎么用的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!