sql排序,id本身为字符串,怎样转换为数字后排序

如表内1.2.3.4.5.。。。。。24,想搜出最大的值,结果出来是9.。。用
select cast((max(ont_id)) as int) from oa_sys.dbo.tb_test也不行,该怎样转换呢?谢谢

很简单,因为你的id字段是字符型当然是以9开头最大,教你个方法,先将字符型转整形就可以了

select max(ont_id+0) from oa_sys.dbo.tb_tes

追问

我的表内是varchar的字段,想用命令转换下,如果将表设计成整形是可以的,关键是前期插入数据时担心有字符型数据误插入,为了抑制错误才设计成varchar,想通过命令来实现转换,可是转换不成。

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-17
max放在外面
或者用TOP和ORDER BY 联合

sql排序,id本身为字符串,怎样转换为数字后排序
很简单,因为你的id字段是字符型当然是以9开头最大,教你个方法,先将字符型转整形就可以了 select max(ont_id+0) from oa_sys.dbo.tb_tes

SQL中怎么将字符串转
1. convert(int,字段名) 例如:select convert(int,'3')2. cast(字段名 as int) 例如:select cast('3' as int)其实,一般情况下没有必要把字符串转换为数字类型 假如需要比较两个字段是否相等,但是一个字段为字符串类型,一个为数字类型,用“=”比较两个值是否相等时,SQL SERVER会自动...

SQL 中怎么把字符串转换为数字
在SQL中,将字符串转换为数字是一项常见的任务。首先,你可以使用ISNUMERIC函数来判断字符串是否能被转换为整数、浮点数、money或decimal类型。该函数返回1表示可转换,0则表示不可。例如,'0'可以直接通过加法转换为数字0。对于绝对比较,可以使用binary类型进行,如比较'11'和'11ddddd',如select binary...

sql怎么把字符串转换为数字?
sql中将字符串数字转换成数字:方法一:SELECT CAST('123' AS SIGNED integer);方法二:SELECT CONVERT('123',SIGNED);方法三:SELECT '123'+0;

SQL 中怎么把字符串转换为数字?
具体方法如下:将字符的数字转成数字,比如'0'转成0可以直接用加法来实现;例如:将pony表中的d 进行排序,可d的定义为varchar,可以这样解决;select from pony order by (d+0);在进行ifnull处理时,比如 ifnull(a\/b,'0')这样就会导致 a\/b成了字符串,因此需要把'0'改成0,即可解决此困扰...

sql语句中对一个字段排序,字段中含有字符串和数字,(怎根据数字进行排序...
order by 字段名称+0 desc\/asc的形式进行排序 order by 字段名称*1 desc\/asc的形式进行排序

SQL2005中为什么我的数据表中ID的排序不是安顺序排列的呢
ID是字符串排序规则的,所以会这样,如果是数字类型的话,排序就会按顺序了 如果想按数字排序的话,要么把字段改成数字类型 要么在添加记录的时候,添加的ID前面添0,比如1就是001,11就是011这样排序就会顺了

SQL 关于字符转换成数值型的问题
select cast(rno as int) as bh from table1 where isnumeric(rno)=1 order by 1 isnumeric(rno)=1的目的是如果rno不能转换为数字就不转换,避免出错。order by 1是按转换后的数字排序,即按cast(rno as int)排序,也可以写成order by cast(rno as int)

mysql里面如何用sql语句让字符串的‘123’转换为数字的123?
方法一:SELECT CAST('123' AS SIGNED);方法二:SELECT CONVERT('123',SIGNED);方法三:SELECT '123'+0;

sql 字符与数字排序
Sql给你,分给我 转换asc码,简洁方便 1是49 a是97 z就是123 只要让数字的码都大于字母就可以了,73是可以根据情况改的,要是有大写情况,也能处理 select Id from a order by (case when isNumEric(Id)=1 then ascii(Id)+73 else ascii(Id) end)...

相似回答