我的编程空间,编程开发者的网络收藏夹
学习永远不晚

DECODE 函数和 CASE-WHEN 表达式的比较

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

DECODE 函数和 CASE-WHEN 表达式的比较

DECODE 函数和 CASE-WHEN 表达式的比较

在 SQL 中我们通常认为以下两种写法是等价的:

DECODE(PARAM, VALUE1, RESULT1, [VALUE2, RESULT2, ...] DEFAULT_RESULT)

CASE PARAM WHEN VALUE1 THEN RESULT1 [WHEN VALUE2 THEN RESULT2 ...] ELSE DEFAULT_RESULT END

  1. 虽然一个叫函数,一个叫表达式,但实际上二者都在行为上都很像 IF-ELSIF-ELSE 流程控制语句,会按书写顺序执行判断,遇到符合条件的情况则返回相应的值,后面的情况涉及到的语句不会被执行(例如开销较大的函数)
  2. 都可以省略默认值的(CASE 省略默认值的方式是不写 ELSE 子句),如果省略默认值但又未找到匹配则返回 NULL;
  3. 都可以在 SQL 中任何需要“值”的地方使用;

实际上 DECODE 和 CASE-WHEN 还是有一些差别的,我把自己知道的列在了下面,欢迎读者补充!

  DECODE CASE-WHEN
适用数据库 Oracle 专属 SQL 标准
可用于 PL/SQL
特殊匹配逻辑 NULL 可与 NULL 匹配
(通常情况下 NULL 不会与任何值相等,只能用 IS NULL 判断)
如 CASE 后没有表达式
可在 WHEN 和 THEN 中填写任意条件表达式
返回值类型不同时 某个返回值在语句执行中实际返回时
向第一个返回值的类型隐式转换
所有返回值在语句解析时
与第一个返回值类型保持一致

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

DECODE 函数和 CASE-WHEN 表达式的比较

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

下载Word文档

猜你喜欢

DECODE 函数和 CASE-WHEN 表达式的比较

在 SQL 中我们通常认为以下两种写法是等价的: DECODE(PARAM, VALUE1, RESULT1, [VALUE2, RESULT2, ...] DEFAULT_RESULT) CASE PARAM WHEN VALUE1 THEN RESULT1
DECODE 函数和 CASE-WHEN 表达式的比较
2017-03-23

C++ 函数指针与 lambda 表达式的比较和对比是什么?

函数指针和 lambda 表达式都是 c++++ 中封装代码块的技术,各有不同。函数指针是指向函数内存地址的常量指针,而 lambda 表达式是匿名函数,语法更灵活,可捕获外部变量。函数指针适合类型安全和低开销的场景,lambda 表达式适
C++ 函数指针与 lambda 表达式的比较和对比是什么?
2024-04-17

Java Lambda 表达式与其他函数式编程语言的比较:函数式编程的语言选择

Java Lambda 表达式是一种强大的功能,可让您编写更简洁、更易读的代码。但它与其他函数式编程语言(如 Scala 和 Haskell)相比如何呢?本文将对这些语言进行比较,帮助您选择最适合您的函数式编程语言。
Java Lambda 表达式与其他函数式编程语言的比较:函数式编程的语言选择
2024-02-26

Java Lambda 表达式与传统编程范式的比较:函数式编程的优势与劣势

Java Lambda 表达式是一种新的编程范式,它允许您使用更简洁、更强大的语法来编写代码。Lambda 表达式可以用于各种任务,包括创建匿名函数、处理集合以及过滤数据。
Java Lambda 表达式与传统编程范式的比较:函数式编程的优势与劣势
2024-02-26

Python函数式和Ruby的相关技术的比较过程

这期内容当中小编将会给大家带来有关Python函数式和Ruby的相关技术的比较过程,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Python函数式在平时的使用中有很多有意思的事情。下面我们就详细的看看Py
2023-06-17

JS 中的函数表达式和函数声明你混淆了吗?

在本文中,我们来看一下,如何使用function关键字来定义函数声明和函数表达式,以及这两种函数之间的区别又是什么。

Java中Lambda表达式和函数式接口的使用和特性

JavaLambda表达式是一种函数式编程的特性,可简化匿名内部类的写法,与函数式接口搭配使用,实现代码简洁、可读性高、易于维护的特点,适用于集合操作、多线程编程等场景
2023-05-16

Java8函数式接口和Lambda表达式,你真的会了吗

Java8 由Oracle在2014年发布,是继Java5之后最具革命性的版本了。Java8吸收其他语言的精髓带来了函数式编程,lambda表达式,Stream流等一系列新特性,学会了这些新特性,可以让你实现高效编码优雅编码。

Python Lambda表达式与其他编程语言的匿名函数对比

,展示了Python Lambda表达式与其他编程语言的匿名函数的异同,以及Python Lambda表达式的优势和局限性。
Python Lambda表达式与其他编程语言的匿名函数对比
2024-02-23

C++Lambda 表达式与函数重载和重写的交互

lambda 表达式在 c++++ 中与函数重载和重写交互,提供灵活和可重用的代码。lambda 表达式可以充当重载函数,允许使用具有相同名称但参数不同的 lambda 表达式;也可以用于重写基类中的虚拟函数。通过在函数重载中使用 lamb
C++Lambda 表达式与函数重载和重写的交互
2024-04-20

Java Lambda 表达式的未来展望:函数式编程的前景和挑战

Java Lambda 表达式作为 Java 8 中引入的新特性,彻底改变了 Java 的编程风格,为函数式编程提供了强有力的支持。本文探讨了 Lambda 表达式的未来展望,分析了函数式编程的前景和挑战,并提供了相应的解决方案。
Java Lambda 表达式的未来展望:函数式编程的前景和挑战
2024-02-26

C++ 函数默认参数和可变参数在 Lambda 表达式中的应用

lambda 表达式中,默认参数允许指定参数默认值,而可变参数则允许传递数量不定的参数。默认参数应紧随必选参数,而可变参数必须是函数参数中最后一个。这些功能可以简化代码并提高可读性,例如在处理字符串列表时添加前缀和后缀。C++ 函数默认参数
C++ 函数默认参数和可变参数在 Lambda 表达式中的应用
2024-04-22

awk正则表达式和内置函数的使用方法实例详解

awk正则表达式及内置函数实例详解: 1、模糊匹配:awk ‘{if($3~/97/) print $0}' data.f:如果第三项中含有”97”则打印该行awk ‘{if($4!~/ufcx/) print $0}' data.f:如果
2022-06-04

C++ 函数调用 Lambda 表达式:参数传递和返回值的回调优化

在 c++++ 中,可以使用 lambda 表达式作为函数参数,实现回调函数的灵活性。具体而言:参数传递:通过 std::function 包装 lambda 表达式,以函数指针形式传递给函数。返回值处理:使用 std::function
C++ 函数调用 Lambda 表达式:参数传递和返回值的回调优化
2024-05-03

C++ 函数中 lambda 表达式的生命周期和作用域是如何管理的?

lambda 表达式在 c++++ 中拥有独特的功能周期和作用域管理:生命周期:lambda 表达式的生命周期与捕获的变量的生存期相关,变量销毁时 lambda 也失效。作用域:lambda 只能访问其定义作用域中的变量,包括局部变量、全局
C++ 函数中 lambda 表达式的生命周期和作用域是如何管理的?
2024-04-25

编程热搜

目录