按年龄段查询的问题 请大神帮

oracle数据库中存了 字段age 数据类型varchar2 值为 1天 2天 ... 30天 1月 2月 ... 12 月 1岁 2岁 ... 100岁 (值不连续且无序)

现要在jsp页面查出某一年龄段内的所有数据 求方法

sql语句用 select * from 当前表 where age between 年龄段1 and 年龄段2,

先加个字段age2,用下面的语句统一格式为 '000岁00月000天',就可以查了

 UPDATE table1
   SET age2 = '000岁00月'+SUBSTR('000'+age1,LENGTH(age1)) 
 WHERE age1 LIKE '%天'

UPDATE table1
   SET age2 = '000岁'+SUBSTR('00'+age1,LENGTH(age1))+'000天'
 WHERE age1 LIKE '%月'

UPDATE table1
   SET age2 = SUBSTR('000'+age1,LENGTH(age1))+'00月000天'
 WHERE age1 LIKE '%岁'

1 建表 新建一列age3 用于将age2列转换为数字 以天为单位
create table jw_test (age1 number ,age2 varchar2(100),age3 number);
然后导数据
2. 转换数字放 age3 ,然后就可以排序了
update jw_test set age3=substr(age2,1,instr(age2,'天')-1) where age2 like '%天';

update jw_test set age3=substr(age2,1,instr(age2,'月')-1)*30 where age2 like '%月';

update jw_test set age3=substr(age2,1,instr(age2,'岁')-1)*365 where age2 like '%岁';