使用 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;
我有一个 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;