日期:2014-05-17  浏览次数:20859 次

求一sql 谢谢
把12.1.132 换成 0012.0001.0132
就是把数字换成四位数的   不足四位的在前面补0

写了个
     select regexp_replace('12.1.132','(\d+)',lpad('\1',4,0)) from dual
错的好厉害
谢谢

------解决方案--------------------
引用:
把12.1.132 换成 0012.0001.0132
就是把数字换成四位数的   不足四位的在前面补0

写了个
     select regexp_replace('12.1.132','(\d+)',lpad('\1',4,0)) from dual
错的好厉害
谢谢



SELECT REPLACE(WMSYS.WM_CONCAT(X) ,',','.') AS R
FROM
(
SELECT LPAD(REGEXP_SUBSTR('12.1.132', '[^.]+', 1, LEVEL),4,0) AS X
  FROM DUAL
CONNECT BY LEVEL <=LENGTH(REGEXP_REPLACE('12.1.132', '[^.]+', ''))+1
)


觉着很奇怪的写法,但是能够使用,我想搞明白一个事情,难道WMSYS.WM_CONCAT函数只能够使用","作为分隔符么?