使用 Max 或 top 或 rowset 从 table 中检索最后一行

Retrieve Last Row from a table using Max or top or rowset

我有一个 table,其中包含 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)

我猜你可以用 MAX(MID(Emp_ID, 1)) 代替 MAX(Emp_ID).

如果仍然无效,将字符串转换为数字应该会有帮助。 示例 - MAX(TO_NUMBER(MID(Emp_ID, 1))).

编辑 - 首先,order by是没有用的。并且由于您要求 SQL 服务器,请使用此 -

SELECT 'E00' + CAST (MAX (CONVERT (INT, RIGHT(Emp_ID, LEN(Emp_ID) - 1))) AS varchar) from Emp_Id;