sql – 在多个组中的每组记录中选择最新和特定的版本
发布时间:2020-05-23 08:17:07 所属栏目:MsSql 来源:互联网
导读:问题: 我有一个在foo中记录数据行的表.每次更新行时,都会插入一个新行以及修订版本号.桌子看起来像: id rev field1 1 test12 1 fsdfs3 1 jfds1 2 test2 请注意,在表中最后一条记录是第一行的较新版本. 有没有人知道一种有效的方法来查询最新版本的行,以及一
|
问题:
id rev field 1 1 test1 2 1 fsdfs 3 1 jfds 1 2 test2 请注意,在表中最后一条记录是第一行的较新版本. 有没有人知道一种有效的方法来查询最新版本的行,以及一个具体的记录版本?例如,对于rev = 2的查询将返回2,3和4行(而不是替换的第1行),而对于rev = 1的查询会产生具有rev = 1的那些行,并且在重复的ids的情况下,选择具有较高版本号的数据(记录:1,2,3). 我实际上不确定这是否可能在SQL Server … 我不喜欢以迭代的方式返回结果. 解决方法只获取最新版本:SELECT * from t t1 WHERE t1.rev = (SELECT max(rev) FROM t t2 WHERE t2.id = t1.id) 要得到一个具体的修订,在这种情况下1(如果一个项目没有修订,但下一个最小的版本): SELECT * from foo t1 WHERE t1.rev = (SELECT max(rev) FROM foo t2 WHERE t2.id = t1.id AND t2.rev <= 1) 这可能不是最有效的方式,但现在我无法想像出一个更好的方法. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Sql查询将nvarchar转换为int
- 是否可以在Azure VIP交换期间更改连接字符串
- 由Entity Framework生成的SQL用于字符串匹配
- sql-server – 我可以使用SQL Server标识列来确定插入的行顺
- .net – 存储过程只有在从应用程序运行时才导致超时
- sql-server – UPDATE错误:“参数数据类型文本对REPLACE的
- .net – 用LINQ修改’字符串或二进制数据的任何聪明的方式都
- Sql Server 2012 分页方法分析(offset and fetch)
- sql-server – TSQL:按asc排序,不带列名
- SQL71501 – 如何摆脱这个错误?
推荐文章
站长推荐
热点阅读
