专业IT网络知识平台,分享IT百科知识、生活百科知识解答!

易企推科技
易企推科技

decode函数是什么意思,decode函数用法

来源:小易整编  作者:小易  发布时间:2023-03-23 11:06
摘要:decode函数是什么意思,decode函数用法第五十一章SQL函数DECODE计算给定表达式并返回指定值的函数。大纲DECODE(expr ,search,result[,default])参数expr -要解码的表达式。search...

decode函数是什么意思,decode函数用法

第五十一章 SQL函数 DECODE

计算给定表达式并返回指定值的函数。

大纲

DECODE(expr {,search,result}[,default])

参数

  • expr - 要解码的表达式。

  • search - 要与Expr进行比较的值。

  • result - Expr匹配搜索时返回的值。

  • default - 可选-如果expr与任何搜索都不匹配,则返回默认值。

描述

可以指定多个搜索和结果对,以逗号分隔。您可以指定一个默认值。DECODE表达式(包括EXPR、SEARCH、RESULT和DEFAULT)中的最大参数数约为100。搜索、结果和默认值可以从表达式派生。

为了计算DECODE表达式,会逐个将expr与每个搜索值进行比较:

  • 如果expr等于search ,则返回相应的结果。

  • 如果expr不等于search ,则返回默认值,如果省略默认值,则返回NULL。

仅在将search与Expr进行比较之前计算每个search,而不是在将所有search与Expr进行比较之前评估所有search。因此,如果上一次搜索等于EXPR,不会对搜索求值。

在DECODE表达式中,将两个NULL视为等效。如果expr为NULL,则将返回同样为NULL的第一次搜索结果。

请注意,为了与Oracle兼容,支持解码。

返回值的数据类型

DECODE返回第一个结果参数的数据类型。如果无法确定第一个结果参数的数据类型,则DECODE返回VARCHAR。对于数值,DECODE从所有可能的结果参数值返回最大长度、精度和小数位数。

如果结果和默认值的数据类型不同,则返回的数据类型是与所有可能的返回值最兼容的类型,即具有最高数据类型优先级的数据类型。例如,如果结果是整数,默认值是小数,则DECODE返回一个带有数据类型数字的值。这是因为数字是与两者兼容的最高优先级的数据类型。

示例

下面的例子将13到19岁的年龄“decodes”为“Teen”; 默认为“Adult”:

SELECT Name,Age,DECODE(Age,
       13,'Teen',14,'Teen',15,'Teen',16,'Teen',
       17,'Teen',18,'Teen',19,'Teen',
       'Adult') AS AgeBracket
FROM Sample.Person
WHERE Age > 12

decode函数是什么意思,decode函数用法

下面的示例对空值进行解码。如果FavoriteColors没有值,DECODE将它替换为字符串' no Preference '; 否则,它返回FavoriteColors值:

SELECT Name,DECODE(FavoriteColors,
                   NULL,'No Preference',
                   $LISTTOSTRING(FavoriteColors,'^')) AS ColorPreference
FROM Sample.Person
ORDER BY Name

decode函数是什么意思,decode函数用法

下面的示例解码颜色首选参数。如果此人只有一种最喜欢的颜色,则该颜色名称将被字母缩写替换。如果用户有多个最喜欢的颜色,则DECODE返回FavoriteColors值:

SELECT Name,DECODE(FavoriteColors,
                   $LISTBUILD('Red'),'R',
                   $LISTBUILD('Orange'),'O',
                   $LISTBUILD('Yellow'),'Y',
                   $LISTBUILD('Green'),'G',
                   $LISTBUILD('Blue'),'B',
                   $LISTBUILD('Purple'),'V',
                   $LISTBUILD('White'),'W',
                   $LISTBUILD('Black'),'K',
                   $LISTTOSTRING(FavoriteColors,'^')) 
FROM Sample.Person
WHERE FavoriteColors IS NOT NULL
ORDER BY FavoriteColors

decode函数是什么意思,decode函数用法

请注意,ORDER BY子句按原始字段值排序。以下示例按解码值排序:

SELECT Name,DECODE(FavoriteColors,
                   $LISTBUILD('Red'),'R',
                   $LISTBUILD('Orange'),'O',
                   $LISTBUILD('Yellow'),'Y',
                   $LISTBUILD('Green'),'G',
                   $LISTBUILD('Blue'),'B',
                   $LISTBUILD('Purple'),'V',
                   $LISTBUILD('White'),'W',
                   $LISTBUILD('Black'),'K',
                   $LISTTOSTRING(FavoriteColors,'^')) AS ColorCode
FROM Sample.Person
WHERE FavoriteColors IS NOT NULL
ORDER BY ColorCode

decode函数是什么意思,decode函数用法

下面的示例将“Employee”记录中的“Company code”字段中的数字代码进行解码,并返回相应的部门名称。如果员工的公司代码不是1到10,DECODE返回默认的“Admin(non-tech)”:

SELECT Name,
DECODE (Company,
   1, 'TECH MARKETING', 2, 'TECH SALES', 3, 'DOCUMENTATION', 
   4, 'BASIC RESEARCH', 5, 'SOFTWARE DEVELOPMENT', 6, 'HARDWARE DEVELOPMENT',
   7, 'QUALITY TESTING', 8, 'FIELD SUPPORT', 9, 'PHONE SUPPORT',
   10, 'TECH TRAINING',
       'Admin (non-tech)') AS TechJobs
FROM Sample.Employee WHERE Company<10

decode函数是什么意思,decode函数用法

该表达式使用Company作为expr参数,并使用10对搜索和结果参数。默认参数为“Admin(non-tech)”。


本文地址:IT百科频道 https://www.hkm168.com/tags/937114.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


IT百科
小编:小易整编
相关文章相关阅读
  • c语言的输入函数有哪些

    c语言的输入函数有哪些

    c语言的输入函数有:1、scanf()函数、从标准输入stdin读取格式化输入;2、getchar()函数,从标准输入stdin获取一个字符;3、gets()函数,从标准输入stdin读取一行;4、getch()函数,从stdin流中读取字...

  • 某台微机安装的是64位操作系统中,64位指的是什么

    某台微机安装的是64位操作系统中,64位指的是什么

    某台微机安装的是64位操作系统中,64位指的是cpu的字长,即cpu每次能处理64位二进制数据。字长是cpu的主要技术指标之一,指的是cpu一次能并行处理的二进制位数,字长总是8的整数倍,通常pc机的字长为32位,64位。本教程操作环境:w...

  • c语言是什么意思

    c语言是什么意思

    一:c语言是什么意思C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言,以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低...

  • skype是什么软件

    skype是什么软件

    skype是一种简单的免费软件,使您能够在数分钟之内在世界上的任何角落拨打免费电话,它使用全新的p2p【对等】技术将您与其他skype用户相连接。Skype是一种简单的免费软件,使您能够在数分钟之内在世界上的任何角落拨打免费电话。Sky...

  • 什么是构造函数?详解JavaScript中的构造函数

    什么是构造函数?详解JavaScript中的构造函数

    作为原型和原型链的基础,先了解清楚构造函数以及它的执行过程才能更好地帮助我们学习原型和原型链的知识。本篇文章带大家详细了解一下javascript中的构造函数,介绍一下怎么利用构造函数创建一个js对象,希望对大家有所帮助!一个普通的函数被用...

  • 计算机的三类总线分别是什么?

    计算机的三类总线分别是什么?

    计算机的三类总线分别是:控制总线、地址总线和数据总线。控制总线用于将微处理器控制单元的信号,传送到周边设备;地址总线用来指定在ram之中储存的数据的地址;数据总线用于在cpu与ram之间来回传送需要处理或是需要储存的数据。总线(Bus)是计...

  • 2k屏幕是什么意思

    2k屏幕是什么意思

    2k屏幕是指分辨率能够达到2560*1440的屏幕。2k是一个通用术语,指屏幕或者内容的水平分辨率达约2000像素的分辨率等级;又因“16:9”的比例是高清晰度视频规格的国际标准,所以2k分辨率在视频制作、显示屏等领域常见格式为2560*1...

  • mysql中的不等于符号是什么

    mysql中的不等于符号是什么

    mysql中的不等于符号有两种:“!=”和“”;它们都可用于判断数字、字符串、表达式是否不相等。对于“!=”和“”,如果两侧操作数不相等,返回值为1,否则返回值为0;如果两侧操作数有一个是null,那么返回值也是null。本教程操作环境:w...

  • 周排行
  • 月排行
  • 年排行

精彩推荐