我在做一个功能的时候,明细的行项号是五位数,如: 00001,00002,,00010 这种形式,那么我们必须得在行项号前面补齐0

由于使用的是Oracle数据库,发现Oracle里面的 to_char 方法支持转换,哈哈,就看下面的例子吧。

SELECT DATA1,DATA2,DATA3 FROM DETAILS;

假设以上是我的查询语句,我要将 DETAILS 表的数据导入到其他 DETAILS 表,这个时候我就郁闷了,我的行项号如何处理呢,难道我要在程序里面一条条的处理吗?

结果是 NO,不用的,我们来进行一个简单的改变,改变为以下SQL语句

SELECT ROWNUM,DATA1,DATA2,DATA3 FROM DETAILS;

结果发现以上SQL语句还是不能满足需求,前面没有自动补0,好吧,切入正题,看看我们 to_char 改如何用

SELECT TO_CHAR(ROWNUM,'00000') LINE,DATA1,DATA2,DATA3 FROM DETAILS;

嘿嘿,是不是发现前面自动补0了啊,不对,前面怎么多了个空格呢,好吧,去掉一下空格,那么最终的SQL为

SELECT TRIM(TO_CHAR(ROWNUM,'00000')) LINE,DATA1,DATA2,DATA3 FROM DETAILS;

TO_CHAR(参数1,参数2)   解说:

参数1: 原字符,如我们的行项 1,2,3,4,5,6...10

参数2:需要在前面填补的字符,如 00000 ,则为总共5位字符,将原字符从右边开始填充。

以上都是个人理解,没有去看Oracle官方文档。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐