数据库里面的一些字段信息都是以16进制存储的!比如:
FJNM
0001
...
0009
000A
...
000F
0010
0011
....但是在数据库中取最大值信息的时候,是按10进制来取的!
SELECT MAX(FJNM) FROM TABLE 取到的,并不是16进制的最大值!
不知道如何处理,麻烦指点一下!

解决方案 »

  1.   

    写个FUNCTION或SP把十六进制转换成十进制。然后select
      

  2.   

    十进制转十六进制:cast(yourNumber as varbinary(255))
      

  3.   

    十六进制转十进制:print cast(0x00000078 as int)select max(cast(yourNumber as int)) from yourTable
      

  4.   

    但是实际上,数据库中,该字段是以varchar()存储的, 如果select max(cast(yourNumber as int)) from yourTable
    会提示
    Syntax error converting the varchar value '02D5' to a column of data type int.
    这种错误!
    02D5是数据库中存的字段,转换为10进制后,是0724
      

  5.   

    http://download.csdn.net/source/733268
      

  6.   

    谢楼上几位兄弟的建议,是我自己想的太过复杂了! 0123456789ABCDEF字符串,我判断字符就是了,依次增加;取最大值的时候,肯定是取带有字符的,就是在保存到数据库里面的时候,对生成的编号做一下修改! 
    再次感谢楼上几位仁兄的见议!