有趣的是,我没有找到这个具体但基本问题的帖子。
目标:更新最新的budgetid记录docstatus = 0.然后我想更新 next-to-last budgetid记录docstatus = 1.我在PHP中尝试这个但是也在我的SQL中测试服务器SEM也在那里失败。
我的SQL Server声明:
select
budgetid, docstatus, datechanged
from
ccy_budget
where
activityid = 11111
order by
datechanged desc
limit 1,1;
SEM中出现的错误是:
语法不正确'限制'。
然而在w3schools中,[样本] sql工作得很好:
SELECT *
FROM Customers
ORDER BY postalcode DESC
LIMIT 1,1;
似乎很简单,当然我错过了一些基本的东西。
Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64)
Apr 2 2010 15:48:46
Copyright (c) Microsoft Corporation
Enterprise Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)
答案 0 :(得分:3)
SQL Server中的等效语法是
select *
from table
order by somerow desc
offset 1 rows fetch next 1 rows only;
但是上面的内容可以从SQL Server 2012开始提供,因此对于您的版本,您需要执行以下某些操作
;with cte
as
(
select *,row_number() over (order by postalcode desc) as rn
from table
)
select * from cte where rn=2