db2函数之decode

使用场景

在tab1中有这样一个字段,weekday,值为"星期一","星期二","星期三","星期四","星期五","星期六","星期日",

需要查询该字段的值,如果为星期一,则activity_to_do为"上课",如果是星期二,则活动为打篮球,如果是星期三,则为散步,其他则为"呆在家",

使用后的函数为如下:

decode函数

sql 复制代码
// decode函数
select 
	decode(weekday,
	'星期一','上课', -- 如果是星期一,活动为上课
	'星期二','打篮球', -- 如果是星期二,活动为打篮球
	'星期三','散步', -- 如果是星期三,活动为散步
	'呆在家') -- 如果是其他,活动为呆在家
as activity_to_do from tab1;
sql 复制代码
// decode函数
select 
	decode(需要匹配的字段,
	'如果为值1','那么取这个值1', 
	'如果为值2','那么取这个值2',
	-- 中间可以有很多对
	'如果前面的值匹配不上,那么为这个值')
as activity_to_do from tab1;

其效果与case when等同

sql 复制代码
// case when函数
SELECT 
   CASE weekday
       WHEN '星期一' THEN '上课',
       WHEN '星期二' THEN '打篮球',
       WHEN '星期三' THEN '散步',
       ELSE '呆在家'
   END AS activity_to_do 
FROM tab1;

db2官网对decode函数的用法解释

相关推荐
胡耀超3 天前
Oracle数据库设计的系统性方法论:从实践困境到理论升华的完整指南
数据库·oracle·性能优化·dba·db·索引设计
黑白极客9 天前
自增主键为什么不是连续的?
mysql·db·引擎
蓝黑20201 个月前
MySQL查询语句的通配符*
mysql·db
漫谈网络2 个月前
sqlite3 命令行工具详细介绍
sql·sqlite·db
TechExplorer3652 个月前
MySQL重置密码终极版
mysql·dba·db
darkchink2 个月前
[LevelDB]LevelDB版本管理的黑魔法-为什么能在不锁表的情况下管理数据?
c语言·数据库·c++·oracle·数据库开发·dba·db
Gadus_3 个月前
调节磁盘和CPU的矛盾——InnoDB的Buffer Pool
mysql·db
A叶子叶4 个月前
PostgREST实现DBaaS(数据库即服务)
数据库·postgresql·db
张铁牛5 个月前
6. Calcite添加自定义函数
db·calcite·middleware
离别又见离别5 个月前
uniapp 本地数据库多端适配实例(根据运行环境自动选择适配器)
数据库·vue.js·sqlite·uni-app·db