日期:2014-05-17 浏览次数:20972 次
给你个方法参考:
DROP TABLE tt;
CREATE TABLE tt (n VARCHAR2(50));
insert into tt values('2006.5.林铬移交 ');
insert into tt values('GC12133 ');
insert into tt values('GPRS01002 ');
insert into tt values('GPRS010021 ');
insert into tt values('HNUN(2006)移094号 ');
insert into tt values('HNUN(2006)移095号 ');
insert into tt values('HNUN(2006)移1024号 ');
insert into tt values('HNUN(2006)移1026号 ');
insert into tt values('HNUN(2006)移1032号 ');
insert into tt values('HNUN(2006)移1033号 ');
insert into tt values('HNUN(2006)移115号 ');
insert into tt values('HNUN(2006)移116号 ');
insert into tt values('HNUN(2007)网建099号 ');
insert into tt values('HNUN(2007)网建101号 ');
insert into tt values('HNUN(2007)网建102号 ');
insert into tt values('HNUN(2007)网建1033号 ');
insert into tt values('HNUN(2007)网建103号 ');
insert into tt values('HNUN(2007)网建1049号 ');
insert into tt values('HNUN(2007)网建104号 ');
insert into tt values('HNUN(2007)网建1050号 ');
insert into tt values('HNUN(2007)网建1051号 ');
insert into tt values('HNUN(2007)网建1052号 ');
insert into tt values('HNUN(2007)网建105号 ');
COMMIT;
SELECT n
FROM TT
ORDER BY REGEXP_REPLACE(n,'[0-9]+号',''),CASE
WHEN N LIKE 'HNUN(2006)移%' THEN
LPAD(LTRIM(N, 'HNUN(2006)移'), 10, '0')
WHEN n LIKE 'HNUN(2007)网建%' THEN
LPAD(LTRIM(N, 'HNUN(2007)网建'), 10, '0')
END;
输出:
2006.5.林铬移交
GC12133
GPRS01002
GPRS010021
HNUN(2006)移094号
HNUN(2006)移095号
HNUN(2006)移115号
HNUN(2006)移116号
HNUN(2006)移1024号
HNUN(2006)移1026号
HNUN(2006)移1032号
HNUN(2006)移1033号
HNUN(2007)网建099号
HNUN(2007)网建101号
HNUN(2007)网建102号
HNUN(2007)网建103号
HNUN(2007)网建104号
HNUN(2007)网建105号
HNUN(2007)网建1033号
HNUN(2007)网建1049号
HNUN(2007)网建1050号
HNUN(2007)网建1051号
HNUN(2007)网建1052号