S szqhebei Unregistered / Unconfirmed GUEST, unregistred user! 2010-10-12 #1 编号存在一个字符型的字段中,格式如下:2010-12345,长度不定,本来定的最大位数为-后面是五位,但现在库中有4位的,也有6位的,现在要取得最大的编号,但是数据类型为字符型的,没有想出好的办法,各位老大,看下,帮出个主意
编号存在一个字符型的字段中,格式如下:2010-12345,长度不定,本来定的最大位数为-后面是五位,但现在库中有4位的,也有6位的,现在要取得最大的编号,但是数据类型为字符型的,没有想出好的办法,各位老大,看下,帮出个主意
S szhcracker Unregistered / Unconfirmed GUEST, unregistred user! 2010-10-12 #2 根据 - 号后面的数据排序即可,数据库应该都有相关的字符串函数
S szqhebei Unregistered / Unconfirmed GUEST, unregistred user! 2010-10-12 #3 我是根据后面的排序了,但是后面的长度不固定,有的是4位,有的是5位,排序出错
J jennykiller Unregistered / Unconfirmed GUEST, unregistred user! 2010-10-12 #4 把前面的2010-截掉,取后面的字符转换成number,再取MAX就可以了。
S szqhebei Unregistered / Unconfirmed GUEST, unregistred user! 2010-10-13 #5 我想把这个方法放在数据库中,哪位老大麻烦一下,帮忙写一下
S sexhotel11 Unregistered / Unconfirmed GUEST, unregistred user! 2010-10-13 #6 你用的什么数据库啊?sql server 中可以这样select max(case(substring(字段名字,5,len(字段名字)-5) as int)) from 表名
A antonyzhang Unregistered / Unconfirmed GUEST, unregistred user! 2010-10-14 #8 select substring('2010-12345',charindex('-','2010-12345') + 1,len('2010-12345'))
D dtboyi Unregistered / Unconfirmed GUEST, unregistred user! 2010-10-16 #9 select max(case(substring(字段名字,5,len(字段名字)-5) as int)) from 表名
N nm_wyh Unregistered / Unconfirmed GUEST, unregistred user! 2010-10-20 #10 看楼上几位的都是在查询语句中嵌套函数。如果数据量大的话,这种方法是不可取的,效率实在是低下。最简单的办法,select 字段名 from 表名 where 条件 order by 编号 DESC降序排列,取第一行数据即可。如果你前面的2010是年份的话,那么条件可以这样写 编号 like '2010%' 然后在加order by 排序。如果这个表加上索引,那么效率会更高。应该比较在查询中使用函数效率高一点。没经过测试,只是理论上来说。
看楼上几位的都是在查询语句中嵌套函数。如果数据量大的话,这种方法是不可取的,效率实在是低下。最简单的办法,select 字段名 from 表名 where 条件 order by 编号 DESC降序排列,取第一行数据即可。如果你前面的2010是年份的话,那么条件可以这样写 编号 like '2010%' 然后在加order by 排序。如果这个表加上索引,那么效率会更高。应该比较在查询中使用函数效率高一点。没经过测试,只是理论上来说。