日期:2014-05-18  浏览次数:20561 次

SQL语句查询最大值问题
表RUNCARD有M,N等字段
其中M中数据如M(1)=mm001
                          M(2)=mm002
                          M(3)=mm003
                          ......
        类型为varchar
现在想做个循环,将M中mm后面的数字部分提取出来最大值,附给num,类型为integer

大家看看我这个语句可以吗?
SELECT   MAX(CAST(SUBSTRING(M,2,9)   AS   INTEGER))   AS   NUM   FROM   RUNCARD  

感觉其中的类型转换有点乱,请高手指教,谢谢,急!!!

------解决方案--------------------
SELECT MAX(CAST(SUBSTRING(M,3,9) AS INT)) AS NUM FROM RUNCARD

------解决方案--------------------
对的,coolingpipe的,没错
------解决方案--------------------
这样也可以:)
SELECT MAX(cast(REPLACE(M, 'mm ', ' ') AS INT)) AS NUM FROM RUNCARD

------解决方案--------------------
这样也可以
select cast(right((select max(m) from runcard),3) as int) as num