请教一个ASP里面自动编号问题
表sample,编号组成是前面两位字母+后面9位数字组成,如:GZ201303001,现在每次插入新纪录都会按照之前的编号自动+1,但不能依靠ID来查找之前编号的最大值,所以不能用TOP 1,请教如何写查询语句?我之前写的SQL:select max(fileno) as fileno from(select top 100 percent * from sample where fileno like '%"&str&"%' order by id desc),在查询分析器里面可以执行,但在ASP里面会报错…… asp sql
[解决办法]
为什么不分开两个字段保存呢……
字段1:GZ
字段2:201303001
而且201303011作为int,查找应该比现在的字符型快吧……
[解决办法]
如果前面两位字母不是固定的GZ(是广东省的什么政府项目?),想忽略前两位字母,只比较后面的9位数字,就应该用SQL的substring函数把fileno从第三个字符截到末尾取出数字部分构成新记录集。当然,前两个字母也需要放在这个记录集的另一个字段里,以便在逆向排序之后再把结果编号用数字和字母两部分连结在一起。
[解决办法]
select top 1 fileno,'GZ'+convert(varchar,convert(int,substring(fileno,3,9))+1) newfileno from sample where fileno like 'GZ%' order by substring(fileno,3,9) desc
[解决办法]