个人的简单理解
本人在尝试用了之后发现,decode的用法其实与Excel中IF的用法类似
decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,默认值)
其中条件可以是列名,与之对应的则是每列当中的数据
可以将该函数理解为一个简单的If判断语句
IF 条件=值1
THEN
RETURN(返回值1)
ELSIF 条件=值2
THEN
RETURN(返回值2)
…
ELSIF 条件=值n
THEN
RETURN(返回值n)
ELSE
RETURN(默认值)
END IF
举例说明
从如下表中捞取数据
执行一段SQL
目的为:将性别为男的人员标记为1,性别为女的人员标记为2
select name,decode(gender,'男',1,2)as number from table_name(对应的表名);
理解为IF语句
IF gendor的值=‘男’ THEN
RETURN(1)
ELSE
RETURN(2)
END IF
查询结果如下
上述的SQL也可以转换为
select name .decode(gender,'男',1,'女',2,3)as number from table_name(对应的表名)
对应的IF判断可以理解为
IF gender的值=‘男’ THEN
RETURN(1)
ELSIF gender的值=‘女’ THEN
RETURN(2)
ELSE
RETURN(3)
END IF
总而言之,根据实际的使用情况总结下来,可以先通过能否将所需要的结果转换为IF判断语句来选择是否需要采用decode函数