在 sql 中我们通常认为以下两种写法是等价的: DECODE(PARAM, VALUE1, RESULT1, [VALUE2, RESULT2, ...] DEFAULT_RESULT) CASE PARAM WHEN VALUE1
在 sql 中我们通常认为以下两种写法是等价的:
DECODE(PARAM, VALUE1, RESULT1, [VALUE2, RESULT2, ...] DEFAULT_RESULT)
CASE PARAM WHEN VALUE1 THEN RESULT1 [WHEN VALUE2 THEN RESULT2 ...] ELSE DEFAULT_RESULT END
实际上 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文档到电脑,方便收藏和打印~
2024-03-16
2024-03-15
2024-03-15
2024-03-15
2024-03-15
2024-03-15
2024-03-15
2024-03-15
2024-03-15
2024-03-14
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0