2015-06-19 63 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'