想实现的sql功能 例如一个字段值长度是5的话那么就把这给值赋给一个变量如果长度是3的话就赋给另一个变量在存储过程中,我用decode()试了下 ,但没整明白.希望大侠能给解决下 谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 decode(length(变量),5,变量值1,变量值2)如果length(变量)长度为5,则取变量值1,否则变量值2 decode(length(变量),5,变量值1,3,变量值2) 如果length(变量)长度为5,则取变量值1,如果length(变量)长度为3,则取变量值2,还可以加上DEFAULT值decode (expression, search_1, result_1, search_2, result_2,default)decode函数比较表达式和搜索字,如果匹配,返回结果;如果不匹配,返回default decode(length(变量),5,变量值1,变量值2)这里的变量值1与变量值2 没有值的情况下这样写可以吗? 我的意思是 如果字段值长度是5就把那个值赋给1个变量,如果是3就赋给另外一个变量 这个不能用decode或case可以先将值赋给一个临时变量参数然后通过if判断要赋给哪个参数 select deocode(length(字段),3,值,5,值) INTO 变量 FROM 表 select case when length(字段)=5 then 字段 when length(字段)=3 then 变量1 else NULL end into 变量2 from 表名 where 唯一检索key 举例select decode(length(emp.ename),5,emp.empno,emp.mgr) from emp;结果77887698没有值会显示空,你也可以用NVL当没有值的情况输出默认值select decode(length(emp.ename),5,nvl(emp.empno,0),nvl(emp.mgr,0)) from emp;结果778807698 求DIC下载 oracle9i的驱动程序是classes12.jar吗?还是什么? 关于 Oracle中 distinct 的问题 之二 不同网段oracle操作问题 请问在Oracle中如何使用用户自定义的索引啊? oracle自动生成ID问题 关于delete后的表空间释放的问题,谢谢!!! 关于oracle workflow的开发问题 update 多表关联。 如何查看日志查看数据库的启动关闭情况 数据同步转移问题 如何让oracle数据库只能启动到mount状态
如果length(变量)长度为5,则取变量值1,否则变量值2
如果length(变量)长度为5,则取变量值1,
如果length(变量)长度为3,则取变量值2,
还可以加上DEFAULT值
decode (expression, search_1, result_1, search_2, result_2,default)
decode函数比较表达式和搜索字,如果匹配,返回结果;如果不匹配,返回default
decode(length(变量),5,变量值1,变量值2)
这里的变量值1与变量值2 没有值的情况下这样写可以吗? 我的意思是 如果字段值长度是5就把那个值赋给1个变量,如果是3就赋给另外一个变量
可以先将值赋给一个临时变量参数
然后通过if判断要赋给哪个参数
select case when length(字段)=5 then 字段
when length(字段)=3 then 变量1
else NULL
end
into 变量2
from 表名
where 唯一检索key
select decode(length(emp.ename),5,emp.empno,emp.mgr) from emp;
结果
77887698
没有值会显示空,你也可以用NVL当没有值的情况输出默认值
select decode(length(emp.ename),5,nvl(emp.empno,0),nvl(emp.mgr,0)) from emp;
结果
7788
0
7698