decode是orcal数据库特有的功能,可用于简洁的表达逻辑判断效果。
decode表达式:
DECODE(value, if1, then1, if2,then2, if3,then3, … else )
value表示加入逻辑判断的计算值,如果value的值与f1吻合,decode函数返回then1,……,如果value与表达式中的所有fn值都不匹配,decode函数结果返回else。其中if,then,else都可以是具体的值或者表达式,甚至嵌套deocde函数。
比如有表t_user
有个enable_
字段表示该条数据是否启用,1表示启用,数据如下:
enable_ |
---|
0 |
0 |
1 |
1 |
现在我们需要把该表数据enable_
具体含义具体含义输出:
状态 |
---|
禁用 |
禁用 |
启用 |
启用 |
可以采用sql:
select case
when t.enable_ = 1 then
'正常'
when t.enable_ = 0 then
'异常'
end 状态
from t_user t
如果是orcal数据库,可以使用decode函数:
select decode(t.enable_, 1, '正常', 0, '异常') 状态
from t_user t
以上俩个sql查询结果一样。