--第一级四位数
select nvl(max(t.layorder) + 1, 1001) as layorder
from testTable t
where length(t.layorder) = 4
/*第二级八位数
this.params.layerOrder 为当前级别layorder
如:1001,那么他的下级就是 10010001
如果10010001已经存在这是10010002
*/
select case
when max(t.layorder) is not null then trim(max(t.layorder) + 1)
else 'this.params.layerOrder' || '0001'
end as layorder
from testTable t
where t.layorder like 'this.params.layerOrder____'
/*
根据年月日+5位数生成code
sql年月日20121106:
SELECT to_char(sysdate,'YYYY') || to_char(sysdate,'MM')||to_char(sysdate,'DD') FROM dual
java年月日20121106:
Calendar calendar=Calendar.getInstance();
String yearMonth="";
String temp=calendar.get(Calendar.YEAR)+"";
yearMonth=temp;
//取月份
temp=(calendar.get(Calendar.MONTH)+1)+"";
if(temp.length()==1){
temp="0"+temp;
}
yearMonth+=temp;
*/
select nvl(max(t.code) + 1, '20121106' || '00001') as code
from testTable t
where t.code like '20121106_____'