广告
返回顶部
首页 > 资讯 > 数据库 >DECODE 函数和 CASE-WHEN 表达式的比较
  • 362
分享到

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

DECODE函数和CASE-WHEN表达式的比较 2017-03-23 06:03:22 362人浏览 无得
摘要

在 sql 中我们通常认为以下两种写法是等价的: DECODE(PARAM, VALUE1, RESULT1, [VALUE2, RESULT2, ...] DEFAULT_RESULT) CASE PARAM WHEN VALUE1

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 中填写任意条件表达式
返回值类型不同时 某个返回值在语句执行中实际返回时
向第一个返回值的类型隐式转换
所有返回值在语句解析时
与第一个返回值类型保持一致
您可能感兴趣的文档:

--结束END--

本文标题: DECODE 函数和 CASE-WHEN 表达式的比较

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

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

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

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

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作