简体   繁体   English

将ms-access last()函数转换为sql server 2008

[英]convert ms-access last() function to sql server 2008

How to convert ms-access last() function to sql server 2008 equivalent query? 如何将ms-access last()函数转换为sql server 2008等效查询? code is 代码是

SELECT 
    DISTINCT Last([Title].[Number) AS Row_ID 
FROM [Title] 
HAVING (Last([Title].[Number]) Is Null)

它没有直接等价的关系,但是通常可以通过ORDER BYROW_NUMBER() ,或者可能是MAX的组合来实现-如果您提供更多的上下文和样本数据,则更容易给出确定的答案

Try this 尝试这个

Select Top 1 Number From
(
  Select Number From Title ORDER BY Number DESC
)

You need to use sub-query with ORDER BY because sql-server doesn't guaranty order of rows without this clause . 您需要将子查询与ORDER BY一起使用,因为如果没有此子句,则sql-server无法保证行的顺序。 See the example. 参见示例。

declare @tbl table(f1 int, f2 varchar(10), d datetime)

insert into @tbl values (1,'1-first','20120917')
insert into @tbl values (1,'1-middle','20120918')
insert into @tbl values (1,'1-last','20120919')
insert into @tbl values (2,'2-just one','20120917')


select f1, (select TOP 1 f2 from @tbl t2 where t2.f1=t1.f1 order by d DESC) Last_f2
from @tbl t1
group by f1

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM