oracle数据库里面的字符串转成数字类型,

我想把s.status_name转成数字类型的... 我想把s.status_name转成数字类型的 展开
 我来答
太平岁年丰9
2013-10-24 · TA获得超过1231个赞
知道小有建树答主
回答量:1017
采纳率:100%
帮助的人:1092万
展开全部
  1. 建议你优化一下你的sql,你完全可以不用子查询将那4个表都扫描两遍(等到你数量巨大,效率会很低,你要在开发阶段避免这种情况的发生),你看一下oracle的LAG()和LEAD()统计函数,它可以在一次查询中取出同一字段的前N行的数据和后N行的值

  2. 你的s.status_name字段里是不是字符和数字都有啊,你贴一下,看看有什么规律


给你个例子

create table a (id number,name varchar2(10));

insert into a values (1,'aa');

insert into a values (2,'bb');

insert into a values (3,'cc');

cimmit;

取当前行的前一行数据

select id,name,lag(id,1)over(order by id),lag(name,1)over(order by id) from a where id in (2,3);

取当前行的后一行数据

select id,name,lead(id,1)over(order by id),lead(name,1)over(order by id) from a where id in (2,3);

这个a表的id不就相当于你的l.location_id吗?

25435331
2013-10-24 · TA获得超过121个赞
知道小有建树答主
回答量:111
采纳率:0%
帮助的人:109万
展开全部
  1. to_number(s.status_name,'999999')

  2. .to_number(s.status_name,'999999.99')

  3. .to_number(s.status_name,'$999999.99')

to_number(),to_date(),to_char()都是有两个参数的,你没用对而已

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tj_angela
2013-10-24 · TA获得超过7530个赞
知道大有可为答主
回答量:6797
采纳率:75%
帮助的人:2582万
展开全部
to_number(s.status_name)
改成这样就可以了
追问
这样不行啊,我刚才试过的
追答
如果字段里面有NULL或者其他非数字型的是不可以的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
micro0369
2013-10-24 · TA获得超过1.2万个赞
知道大有可为答主
回答量:9250
采纳率:85%
帮助的人:4062万
展开全部
用decode函数。

或者用 case when 语句?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式