使用场景
在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;