有一个表TABLE ,TABLE中有一个字段为MC,MC字段中的数据格式都是这样的5C07C1/41A$A61K31/16B ,”$“是用来区分两个数据,我想把里面的数据都变成这种格式C07C001/41A$ A61K031/16B这两种格式的区别是”1/“变成了“001/”和”31/“变成了”031/“ 变换规律是”/“前面数字位不足3位的就前面加0补成3位。还有ORACLE中有没有分割函数就是把数据从”$“处分成两个。
各位高手,谢谢了
各位高手,谢谢了
SELECT SUBSTR(mc,1,INSTR(mc,'$')-1),SUBSTR(mc,INSTR(mc,'$')+1,LENGTH(mc)) FROM table
LPAD(SUBSTR(SUBSTR(mc,1,INSTR(mc,'$')-1),5,INSTR(SUBSTR(mc,1,INSTR(mc,'$')-1),'/')-5),3,'0')
||SUBSTR(SUBSTR(mc,1,INSTR(mc,'$')-1),INSTR(SUBSTR(mc,1,INSTR(mc,'$')-1),'/'),LENGTH(SUBSTR(mc,1,INSTR(mc,'$')-1))),
SUBSTR(SUBSTR(mc,INSTR(mc,'$')+1,LENGTH(mc)),1,4)||
LPAD(SUBSTR(SUBSTR(mc,INSTR(mc,'$')+1,LENGTH(mc)),5,INSTR(SUBSTR(mc,INSTR(mc,'$')+1,LENGTH(mc)),'/')-5),3,'0')
||SUBSTR(SUBSTR(mc,INSTR(mc,'$')+1,LENGTH(mc)),INSTR(SUBSTR(mc,INSTR(mc,'$')+1,LENGTH(mc)),'/'),LENGTH(SUBSTR(mc,INSTR(mc,'$')+1,LENGTH(mc))))
FROM table