求助,截取一NUMBER(10,2)类型整数部分前7位,小数点以及小数点后两位

lvxiaoqing 2014-02-18 09:05:15
自己写了个判断截取,用不同位数数据测试了下没问题,但是感觉有点繁琐,求个简单点的方式~~~

DECLARE
tmp NUMBER(10,2) := 12345678.12;
pos1 NUMBER;
BEGIN
pos1 := INSTR(TO_CHAR(tmp),'.');
CASE
WHEN pos1 = 0 THEN
dbms_output.put_line(SUBSTR(TO_CHAR(tmp),1,7));
ELSE
dbms_output.put_line(SUBSTR(TO_CHAR(TRUNC(tmp)),1,7)||SUBSTR(TO_CHAR(tmp),pos1,3));
END CASE;
END;
...全文
461 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lvxiaoqing 2014-02-24
  • 打赏
  • 举报
回复
引用 7 楼 chenlong331409178 的回复:
SELECT substr(regexp_substr(to_char(123456.12),'\w+',1,1),1,7),regexp_substr(to_char(123456781021.12),'\W'), regexp_substr(to_char(123456.12),'\w+',1,2) from dual;
点赞,没想到用正则表达式~~
DRAGON__90 2014-02-20
  • 打赏
  • 举报
回复
SELECT substr(regexp_substr(to_char(123456.12),'\w+',1,1),1,7),regexp_substr(to_char(123456781021.12),'\W'), regexp_substr(to_char(123456.12),'\w+',1,2) from dual;
cyliner 2014-02-19
  • 打赏
  • 举报
回复
忘了整数了 SELECT SUBSTR(TO_CHAR(TRUNC(&tp)), 0, 7)||DECODE(MOD(&tp,1), 0, '', TO_CHAR(MOD(&tp,1))) FROM DUAL;
cyliner 2014-02-19
  • 打赏
  • 举报
回复
SELECT SUBSTR(TO_CHAR(TRUNC(12345678.12)), 0, 7)|| TO_CHAR( MOD(12345678.12,1)) FROM DUAL;
wolfwu_kg5 2014-02-19
  • 打赏
  • 举报
回复
select substr(to_char(trunc(1234567.89)),1,7) from dual;
CT_LXL 2014-02-18
  • 打赏
  • 举报
回复
引用 2 楼 lvxiaoqing 的回复:
[quote=引用 1 楼 lu010610 的回复:] 当你不够7位时 你就不能这样截取了
试过不满位,也没问题。。就是觉得太麻烦了[/quote]
select substr(to_char(12345678.12),
              1,
              (select case
                        when instr(to_char(12345678.12), '.') - 1 <= 7 then
                         instr(to_char(12345678.12), '.') - 1
                        else
                         7
                      end
                 from dual)) ||
       substr(to_char(12345678.12), instr(to_char(12345678.12), '.'), 3)
  from dual;
lvxiaoqing 2014-02-18
  • 打赏
  • 举报
回复
引用 1 楼 lu010610 的回复:
当你不够7位时 你就不能这样截取了
试过不满位,也没问题。。就是觉得太麻烦了
_拙计 2014-02-18
  • 打赏
  • 举报
回复
当你不够7位时 你就不能这样截取了

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧