​       现在有一个需求:把字符串中代表日的截取出来,如果小于10就前面拼接一个0;如果大于等于10就不拼接。

      这里不说怎么截取字符串,怎么判断,主要说拼接字符串。

      oracle拼接字符串用 ||,字符串也可以和数字拼接。

      假设现在截取出来的日是3,那么应该是03,下面的sql没有问题:

select 0 || 3 from student;       

      现在又有一个新需求,需要把截取出来的日+1。如果+1以后小于10就前面拼接一个0;如果大于等于10就不拼接。

select 0 || 3 + 1 from student;       按理说应该返回 03 ,但实际返回的是4。

      我猜是字符串加数字还是按数字相加处理的。

      如下处理即可:

select 0 || (3 + 1) from student;