我有一个包含20行的表,其中Emp_Id
列值为
E001
E002
E003
E004
E005
E006
E007
E008
E009
E0010
E0011
E0012
E0013
.
.
但是当我使用
时Select MAX(Emp_ID)
from table name
order by Emp_Id desc
输出:
E009
请给出解决方案,为什么我无法获得最后一行。
用于Emp_Id
的数据类型:nvarchar(10)
答案 0 :(得分:0)
我猜你可以使用MAX(MID(Emp_ID,1))代替MAX(Emp_ID)。
如果它仍然不起作用,将字符串转换为数字应该会有所帮助。 示例 - MAX(TO_NUMBER(MID(Emp_ID,1)))。
编辑 - 首先,订单没有用处。既然你要求SQL服务器,请使用它 -
SELECT 'E00' + CAST (MAX (CONVERT (INT, RIGHT(Emp_ID, LEN(Emp_ID) - 1))) AS varchar) from Emp_Id;