1.Oracle中decode()函数用法
1.Oracle中decode()函数用法
JunXing_W 发表于3个月前
1.Oracle中decode()函数用法
  • 发表于 3个月前
  • 阅读 1
  • 收藏 0
  • 点赞 0
  • 评论 0

1.Oracle中decode函数用法

含义解释:
decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)

该函数的含义如下:
IF 条件=值1 THEN
    RETURN(翻译值1)
ELSIF 条件=值2 THEN
    RETURN(翻译值2)
    ......
ELSIF 条件=值n THEN
    RETURN(翻译值n)
ELSE
    RETURN(缺省值)
END IF

用法

(1)比较大小,取得较大值(较小值)

select decode(sign(变量1-变量2),-1,变量1,变量2) from dual; --取较小值

select decode(sign(变量1-变量2),1,变量1,变量2) from dual; --取较大值

PS: sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1

(2)结合Lpad函数,如何使主键的值自动加1并在前面补0

eg:select LPAD(decode(count(记录编号),0,1,max(to_number(记录编号)+1)),14,'0') 记录编号 from tetdmis

Ps:lpad函数从左边对字符串使用指定的字符进行填充,语法为lpad( string, padded_length, [ pad_string ] )

(3)分别返回一个表中性别为男和女的用户的个数:

select sum(decode(性别,男,1,0)) 男,sum(decode(性别,女,1,0)) 女 from 表

(4)在查询语句中把空值输出为0

<1>select nvl(null,0) from dual 或

<2>select decode(cloum_name,null,0,cloum_name) from dual;

Ps:网上学习加上自己遇到问题整理,非100%原创。

标签: Oracle
共有 人打赏支持
粉丝 0
博文 1
码字总数 342
×
JunXing_W
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: