暂无图片
Oracle的decode方法 判断之后两个不同类型之间可以直接赋值吗?
我来答
分享
暂无图片 匿名用户
Oracle的decode方法 判断之后两个不同类型之间可以直接赋值吗?

Oracle的decode方法 判断之后两个不同类型之间可以直接赋值吗?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
DarkAthena

没太明白你说的场景,建议举例描述。
对于oracle中的decode函数而言,语法为

decode(参数1,参数2,参数3[,参数4,参数5]...,参数2n+1) --或 decode(参数1,参数2,参数3[,参数4,参数5]...,参数2n)

其中参数1为被判断值,

  1. 当总参数个数为奇数时:
    当参数1等于参数2时返回参数3;[当参数1等于参数4时返回参数5]…
  2. 当总参数个数为偶数时:
    当参数1等于参数2时返回参数3;[当参数1等于参数4时返回参数5]…否则返回最后一个参数

对于以上所有场景的返回参数,必须都是同一个类型;
参数1及其所有用于判断的参数也都必须是同一个类型(支持隐式转换),见以下例子

select decode(1,0,2,1,'u4') from dual;--报错,第3个和第5个参数类型不一致 select decode(1,0,2,'u1',4) from dual;--报错,第1个和第4个参数类型不一致 select decode(1,0,'u2',1,'u4') from dual;--通过,第1、2、4个参数类型一致,第3、5个参数类型一致 select decode(1,0,2,'1',4) from dual;--通过,第4个参数可以隐式转换为number,和第一个参数类型一致 select decode(1,0,2,1,'4') from dual;--通过,,第5个参数可以隐式转换为number,和第3个参数类型一致
暂无图片 评论
暂无图片 有用 0
暂无图片
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏