如何读取SQL Server的最后一行
使用SQL Server读取最后一行的最有效方法是什么?
该表是索引在一个唯一的键 – “底部”键值代表最后一行。
如果你使用MS SQL,你可以尝试:
SELECT TOP 1 * FROM table_Name ORDER BY unique_column DESC
select whatever,columns,you,want from mytable where mykey=(select max(mykey) from mytable);
您需要在表中使用某种唯一标识的列,如自动填充主键或date时间列(最好是主键)。 那么你可以这样做:
SELECT * FROM table_name ORDER BY unique_column DESC LIMIT 1
ORDER BY column
告诉它根据该列的数据重新排列结果,而DESC
告诉它将结果颠倒(因此将最后一个结果放在前面)。 之后, LIMIT 1
告诉它只返回一行。
如果你的一些id是为了,我假设你的db中会有一些命令
SELECT * FROM TABLE WHERE ID = (SELECT MAX(ID) FROM TABLE)
我试图在SQl服务器2008年的SQL查询中使用最后一个,但它给这个错误:“最后一个”不是一个公认的内置函数名称。
所以我最终使用:
select max(WorkflowStateStatusId) from WorkflowStateStatus
得到最后一行的Id。 也可以使用
Declare @i int set @i=1 select WorkflowStateStatusId from Workflow.WorkflowStateStatus where WorkflowStateStatusId not in (select top ( (select count(*) from Workflow.WorkflowStateStatus) - @i ) WorkflowStateStatusId from .WorkflowStateStatus)
我认为下面的查询将适用于最高性能的SQL Server,没有任何可sorting的列
SELECT * FROM table WHERE ID not in (SELECT TOP (SELECT COUNT(1)-1 FROM table) ID FROM table)
希望你已经明白了… 🙂
尝试这个
SELECT id from comission_fees ORDER BY id DESC LIMIT 1
你可以使用last_value: SELECT LAST_VALUE(column) OVER (PARTITION BY column ORDER BY column)...
我在我的一个数据库中testing它,它按预期工作。
您也可以在这里查看de文档: https : //msdn.microsoft.com/en-us/library/hh231517.aspx
为了检索MS SQL数据库2005的表的最后一行,您可以使用以下查询:
select top 1 column_name from table_name order by column_name desc;
注意:要获取MS SQL数据库2005表的第一行,可以使用以下查询:
select top 1 column_name from table_name;
SELECT * from Employees where [Employee ID] = ALL (SELECT MAX([Employee ID]) from Employees)
这是如何获得最后一个logging,并更新Access数据库中的字段。
UPDATE compalints
SET tkt = addzone &'-'& customer_code &'-'& sn where sn in (select max(sn) from compalints )
如果你没有任何有序的列,你可以使用每行的物理ID:
SELECT top 1 sys.fn_PhysLocFormatter(%%physloc%%) AS [File:Page:Slot], T.* FROM MyTable As T order by sys.fn_PhysLocFormatter(%%physloc%%) DESC
如果你有一个Replicated表,你可以在clientDatabase中有localDatabase和Identity = 2000的Identity = 1000,所以如果你捕捉到最后一个ID,你可能会发现最后一个来自客户端,而不是当前连接数据库的最后一个。 所以返回最后连接的数据库的最好方法是:
SELECT IDENT_CURRENT('tablename')
SELECT * FROM TABLE WHERE ID = (SELECT MAX(ID) FROM TABLE)
我很确定这是:
SELECT last(column_name) FROM table
因为我使用类似的东西:
SELECT last(id) FROM Status