假设我有一张如下所示的表格;SQL服务器 - 将搜索限制在列中的最大值
version_number ID Value
1 33 Foo
2 33 Bar
1 37 Foo
如果ID是33并且只能从最大版本号中选择,我将如何从表中返回值字段? (在这种情况下,2)
类似;
SELECT Value FROM Table WHERE ID = 33 and MAX(version_number)
编辑:两个答案下面的工作。我要和Tim Schmelter的答案一起,因为我认为它更优雅一些,但我已经把它们都投了票。谢谢你们:)
,如果我想指定version_number,但我需要它,所以它符合MAX对于指定值的任何值。因此,例如,搜索ID 33会得到version_number 2的那一行,但如果有意义,搜索ID 37会得到version_number 1的那一行? –
@RyanHargreaves:它的工作方式。它将总是返回属于每个ID的最大版本号的行(因为“通过ID分区”)。如果您希望将版本号的最小版本更改为version_number Asc。 –
对不起,你说的是正确的,我忘了订购我的Desc。谢谢 :) –