Oracle Decode函数的简单用法与个人理解

Oracle Decode函数的简单用法

个人的简单理解

本人在尝试用了之后发现,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函数

猜你喜欢

转载自blog.csdn.net/yingdovezuo/article/details/84770653
今日推荐