1

我有下表

ID     Version         
---    ----------    
123      1           
124      2           
125      3           
126      4           
127      5           
128      6    

现在我需要获取版本号为最大值的 ID 值

我能做的是

select ID from tbl where version = (select max(version) from tbl)

我不想使用它,因为我需要在另一个查询中的连接中使用这部分,我不想让事情进一步复杂化。

4

2 回答 2

1

您可以使用 select FIRST()

SELECT FIRST(id) FROM tbl ORDER BY Version DESC

或者使用LIMIT 1选项限制结果的数量:

SELECT id FROM tbl ORDER BY Version DESC LIMIT 1
于 2013-03-04T06:30:52.763 回答
0

您提到您需要在连接中使用它,所以应该这样做

select *
from table_1 as t1
  join (
      select id, 
             row_number() over (order by version desc) as rn
      from table_2
  ) as t2 on t1.id = t2.id and t2.rn = 1

(这是 ANSI SQL,因为您没有提到 DBMS - 但应该适用于大多数现代 DBMS)

于 2013-03-04T07:48:06.387 回答