本文主要介绍Oracle中decode函数使用的相关信息,有需要的朋友可以参考一下。
含义解释:
Decode(条件,值1,返回值1,值2,返回值2,值n,返回值n,默认值)
该功能的含义如下:
如果条件=值1,则
返回(转换值1)
那么ELSIF条件=值2
返回(转换值2)
.
ELSIF条件=值n那么
返回(转换值n)
其他
返回(默认值)
如果…就会结束
解码(场或场操作,值1,值2,值3)
该函数的结果是,当字段或其运算的值等于1时,函数返回值2,否则返回值3。
当然,值1、2和3也可以是表达式,这使得一些sql语句简单得多。
使用方法:
1.比较尺寸
从dual中选择decode(sign(变量1-变量2),-1,变量1,变量2);-取较小的值。
sign()函数分别返回0、1和-1,具体取决于值是0、正数还是负数。
例如:
变量1=10,变量2=20
然后sign(变量1-变量2)返回-1,decode的解码结果为“变量1”,达到取较小值的目的。
2.该函数用于SQL语句中。其职能如下:
Decode函数类似于一系列嵌套的IF-THEN-ELSE语句。将base_exp与compare1、compare2等进行比较。如果base_exp匹配第I个比较项,则返回第I个对应的值。如果base_exp与任何比较值都不匹配,则返回默认值。每个比较值都是按顺序计算的。如果找到匹配,将不会评估剩余的比较值(如果有)。空的base_exp被认为等同于空的比较值。如果需要,每个比较值都被转换为与第一个比较值相同的数据类型,这也是返回值的类型。
解码功能在实际开发中非常有用。
结合Lpad函数,如何自动给主键的值加1,前面加0?
从tetdmis中选择LPAD(decode(count),0,1,max(to_number (1)),14,' 0 ')记录号
例如:
从a1_interval中选择decode(dir,1,0,1)
dir的值从1变到0,又从0变到1。
例如,我想知道一个班级的男生和女生人数。
我们通常这样写:
从性别=男性的表中选择(*);
从性别=女性的表中选择(*);
如果你想把它们放在一起展示,你必须把它们结合起来。太麻烦了。
有了decode,只需要一句话。
从表中选择sum(decode (gender,男性,1,0))、sum(decode (gender,女性,1,0))
例如:
select sum(decode(siteno,' LT ',1,0))、sum(decode(siteno,' SZ ',1,0))from facd 605;
从facd605中选择sum(当' LT' then 1 else 0 end时的case siteno),sum(当' SZ' then 1 else 0 end时的case siteno);
文森
总结
以上是边肖介绍的Oracle中decode函数的用法。希望对你有帮助。如果您有任何问题,请给我留言,边肖将及时回复您。非常感谢您对我们网站的支持!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。