2015-06-19 77 views
0

我有一个简单的问题,这不应该是这样一个问题MAX功能SQL

这是Epr_plt_epr_num这样 55-16-00017 <我的SQL语句

SELECT MAX(right(Epr_plt_epr_num,5)) as max_num 
FROM eprmaster 
WHERE SUBSTRING(Epr_plt_epr_num, INSTR(Epr_plt_epr_num,'-')+1,2) = '16' 

我在这个领域的数字 - - 这是在该领域

我试图发现场的最大,在这种情况下,应该是最大数量17

如果我这样做MAX(right(Epr_plt_epr_num,2))我得到17.但是如果我做了比它高的任何事情,它将返回16.少一个。

我需要它返回17.但是它返回16

我不能做最大右移号码如00017?

+0

的SQL Server,Oracle,MySQL等,等??? – ganders

+0

如果那些三个独立的领域,生活会更容易。 – Chuck

+0

请设置适当的数据(和数据库)的SQL小提琴。从描述中可以清楚地看到问题是数据,而不一定只是查询。 –

回答

1

从你的榜样,我假设的Epr_plt_epr_num格式是xx-yy-zzzzz

而且你要查找的最大值zzzzz其中yy=16

SELECT MAX(CAST right(Epr_plt_epr_num,5) AS INT) as max_num 
FROM eprmaster 
WHERE left(right(Epr_plt_epr_num,6),2) = '16'