• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Oracle Decode()函数和CASE语句的比较

mysql 搞代码 4年前 (2022-01-09) 15次浏览 已收录 0个评论

Oracle Decode()函数和CASE语句都是我们经常用到的,那么它们的区别在哪里呢?下面就为您详细介绍 Oracle Decode()函数和CASE语句的区别,供您参考。 首先,举2个简单的例子,简单对比一下这2者的区别。 1.CASE语句: 以下是代码片段: SELECTCASESIGN(5-5) W

Oracle Decode()函数和CASE语句都是我们经常用到的,那么它们的区别在哪里呢?下面就为您详细介绍

Oracle Decode()函数和CASE语句的区别,供您参考。

  首先,举2个简单的例子,简单对比一下这2者的区别。

  1.CASE语句:

  以下是代码片段:

  SELECT CASE SIGN(5 – 5)

WHEN 1 THEN ‘Is Positive’

WHEN -1 THEN ‘Is Negative’

ELSE ‘Is Zero’ END

FROM DUAL;

  后台实现:

  以下是代码片段:

  if (SIGN(5 – 5) = 1) {

‘Is Positive’;

} else本文来源gao($daima.com搞@代@#码(网5 if (SIGN(5 – 5) = 2 ) {

‘Is Negative’;

}else {

‘Is Zero’

}

  2. Decode函数:

  以下是代码片段:

  SELECT DECODE(SIGN(5 – 5), 1,

‘Is Positive’, -1, ‘Is Negative’, ‘Is Zero’)

FROMDUAL

  后台实现:

  以下是代码片段:

  switch ( SIGN(5 – 5) )

{

case 1 : ‘Is Positive’; break;

case 2 : ‘Is Negative’; break;

default : ‘Is Zero’

}

  在上面的例子中,2者似乎都可以实现。但是,在碰到非凡的问题时Decode()要实现起来就相当复杂了。

  例如:

  以下是代码片段:

  SELECT CASE X-FIELD

WHEN X-FIELD < 40 THEN ‘X-FIELD < 40’

WHEN X-FIELD < 50 THEN ‘X-FIELD < 50’

WHEN X-FIELD < 60 THEN ‘X-FIELD < 60’

ELSE ‘UNBEKNOWN’END

FROM DUAL

  因此,个人认为,,CASE语句在处理类似问题就显得非常灵活。当只是需要匹配少量数值时,用Decode更为简洁。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Oracle Decode()函数和CASE语句的比较

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址