广告
返回顶部
首页 > 资讯 > 数据库 >Oracle Decode函数的使用
  • 445
分享到

Oracle Decode函数的使用

2024-04-02 19:04:59 445人浏览 八月长安
摘要

DECODE函数的可以根据用户给定的判定条件给定想要的结果语法:DECODE(expr,{search,result,}….,default) 这里给的search,result可以是多个,而括号里所有元素

DECODE函数的可以根据用户给定的判定条件给定想要的结果

语法:

Oracle Decode函数的使用

DECODE(expr,{search,result,}….,default) 这里给的search,result可以是多个,而括号里所有元素的组合最多是255个.

 

今天在写一个语句的时候有一个简单的想法,就是遇到数值的进行自动换算,遇到字符返回原值

selectname,value

  from v$parameter

 wherenamein ('control_file_record_keep_time',

                'db_block_size',

                'db_cache_advice',

                'db_cache_size',

                'db_file_multiblock_read_count',

                'db_flashback_retention_target',

                'db_recovery_file_dest_size',

                'job_queue_processes',

                'optimizer_index_cost_adj',

                'optimizer_mode',

                'processes',

                'sort_area_size')

比如查询v$parameter视图时候,value的类型是varchar2

Oracle Decode函数的使用

其查询结果如下:

Oracle Decode函数的使用

很明显这样显示是不够人性的,所以我试图把value值表示大小的转化为人类可读的情况,已知该视图根据value的类型进行了分类,可以看一下TYPE这个列

问题到这里就出现了。发现文字类型的是无法被转换的,我用下面这条语句尝试报错

selectname,decode(type,6,round(value/1024/1024,2),3,value,value)

  from v$parameter

 wherenamein ('control_file_record_keep_time',

                'db_block_size',

                'db_cache_advice',

                'db_cache_size',

                'db_file_multiblock_read_count',

                'db_flashback_retention_target',

                'db_recovery_file_dest_size',

                'job_queue_processes',

                'optimizer_index_cost_adj',

                'optimizer_mode',

                'processes',

                'sort_area_size')

 orderbyname;

Oracle Decode函数的使用

无效的数值?明明是字符类型的,什么时候被转换成数值类型的?反复尝试发现问题就出在VALUE是字符的参数项上,这点确实有点困惑,反过来尝试成功了。

 Oracle Decode函数的使用

查看官方文档中有如下两句话:

·         If expr and search are character data, then oracle compares them using nonpadded comparison semantics. expr, search, and result can be any of the data types CHAR, VARCHAR2, NCHAR, or NVARCHAR2.The string returned is of VARCHAR2 data type and is in the same character set as the first result parameter.

·         If the first search-result pair are numeric, then Oracle compares all search-result expressions and the first expr to determine the argument with the highest numeric precedence, implicitly converts the remaining arguments to that data type, and returns that data type.

 

内容提到DECODE中的进行比较时,如果expr和search是字符类的,那么后续的结果可能会是任意字符类型的,这个类型根据第一个result返回的字符类型来确定,也就是说如果首个expr和search比对后,返回的result是varchar2类型,那么后续的结果将都会以varchar2类返回。

 

另外如果首个比对的expr和search是具有更高优先级的数值型数据,其结果就会把后续的所有参数转化为数值类型。

 

根据对上述内容理解,我进行类型转化如下,发现语句果然能正确执行了:

Oracle Decode函数的使用

您可能感兴趣的文档:

--结束END--

本文标题: Oracle Decode函数的使用

本文链接: https://www.lsjlt.com/news/43168.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Oracle Decode函数的使用
    DECODE函数的可以根据用户给定的判定条件给定想要的结果语法:DECODE(expr,{search,result,}….,default) 这里给的search,result可以是多个,而括号里所有元素...
    99+
    2022-10-18
  • oracle的decode函数怎么使用
    Oracle的DECODE函数用于根据给定的条件对一个表达式进行解码。它的基本语法如下:DECODE(expression, sea...
    99+
    2023-08-29
    oracle decode
  • oracle decode函数的用法
    oracle decode函数,不管查询的结果是否满足‘PRIMARY’,参数中的select语句还是会执行的,通过查看执行计划就知道 set autotrace traceonly select...
    99+
    2022-10-18
  • oracle中decode函数的使用方法
    本篇文章给大家分享的是有关oracle中decode函数的使用方法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。decode的几种用法1:使用...
    99+
    2022-10-18
  • oracle中如何使用decode函数
    今天就跟大家聊聊有关oracle中如何使用decode函数,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。  一、DECODE函数是ORACLE PL...
    99+
    2022-10-18
  • Oracle中decode函数如何使用
    这篇文章将为大家详细讲解有关Oracle中decode函数如何使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。函数介绍:DECODE函数是ORACLE P...
    99+
    2022-10-18
  • Oracle中decode函数怎么使用
    小编给大家分享一下Oracle中decode函数怎么使用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!DECODE含义decode(条件,值1,返回值1,值2,返...
    99+
    2023-06-22
  • Oracle中decode函数用法
    1.decode函数的两种形式 第一种形式 含义解释: decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值) 该函数的含义如下: IF 条件=值1 TH...
    99+
    2022-11-12
  • oracle decode函数和 sign函数
    流程控制函数 DECODEdecode()函数简介:主要作用:将查询结果翻译成其他值(即以其他形式表现出来,以下举例说明);使用方法:Select decode(columnname,值1,翻译值...
    99+
    2022-10-18
  • Oracle进阶DECODE函数使用详解
    DECODE含义 decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值) 这个是decode的表达式,具体的含义解释为: IF 条件=值1 THEN   ...
    99+
    2022-11-12
  • 怎么在oracle中使用decode函数
    今天就跟大家聊聊有关怎么在oracle中使用decode函数,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1:使用decode判断字符串是否一样DE...
    99+
    2022-10-18
  • decode函数怎么在Oracle中使用
    decode函数怎么在Oracle中使用?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。含义解释: decode(条件,值1,返回值1,值2...
    99+
    2022-10-18
  • Oracle中decode函数怎么用
    小编给大家分享一下Oracle中decode函数怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!含义解释: decode(条...
    99+
    2022-10-18
  • Oracle中decode函数详解
    Oracle中的decode函数是一个条件表达式函数,用于根据给定的条件对一个或多个表达式进行比较,并返回与匹配条件相对应的结果表达...
    99+
    2023-09-09
    oracle
  • oracle的decode函数用法是什么
    oracle的decode函数用法是:1、基本用法,根据一个条件字段进行简单的条件判断;2、多条件判断,根据多个条件进行不同的结果返回;3、嵌套DECODE函数,将DECODE函数嵌套使用以实现更复杂的条件判断和结果返回;4、与其他SQL语...
    99+
    2023-10-22
    oracle
  • Oracle之DECODE函数的用法是什么
    Oracle的DECODE函数用于对一个表达式进行条件判断,根据条件的不同返回不同的结果。它的基本语法如下:DECODE(expr,...
    99+
    2023-10-12
    Oracle
  • Oracle中decode函数用法是怎样的
    这期内容当中小编将会给大家带来有关Oracle中decode函数用法是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.decode函数的两种形式第一种形式含义解释:decode(条件,值1,返回值...
    99+
    2023-06-22
  • sql decode函数怎么使用
    在SQL中,DECODE函数可以用于根据给定的条件对一个表达式进行解码。该函数的语法如下:DECODE(expression, se...
    99+
    2023-08-29
    sql decode
  • MySQL decode函数怎么使用
    MySQL没有内置的DECODE函数,但可以使用CASE语句来实现类似的功能。例如,假设我们有一个名为column_name的列,其...
    99+
    2023-09-23
    MySQL
  • Oracle nvl、nvl2、nullif、decode、case函数详解
    1、NVL函数    nvl(expr1,expr2),如果expr1为空,则返回expr2;2、NVL2函数    nvl2...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作