Oracle删除字段前置0

oracle使用sql实现字段中前置0的去除,看了很多帖子基本上都是用replace和ltrim函数组合去实现的,例如:select replace(ltrim(replace(字段1,‘0’,‘’)),’ ',‘0’) from tablename;
但如果只是纯数字的字段,使用to_number函数则更方便,例如:select to_number(字段1) from tablename;

--1) 创建测试表
CREATE TABLE test_table(A VARCHAR(255)
);--2)插入测试数据
INSERT INTO test_table VALUES('0123');
COMMIT;--3) 删除前置0
--方法1
SELECT REPLACE(ltrim(replace(A,'0',' ')),' ','0')AS A FROM test_table; --123
--上述方法存在个问题,当字段中只有0时(例如'00')查出来是null,可以搭配NVL函数,若为null则展示0
SELECT NVL(REPLACE(ltrim(replace(A,'0',' ')),' ','0'),'0')AS A FROM test_table; --123--方法2  更加简单的方法
SELECT TO_NUMBER(A) AS A FROM test_table;  --123


 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部