我运行了我的应用程序,它定期从Server获取数据。这里的问题是,我想要创建自上次阅读以来的记录。
让我举个例子。
起初,(12:00)
Table
---------
orderId orderName
1 name1
2 name2
3 name3
4 name3我要在这里选择所有的数据。
SELECT *
FROM TABLE一分钟后,一些数据被添加到下面的表格中,
Table
---------
orderId orderName
1 name1
2 name2
3 name3
4 name3
5 name4
6 name5此时,当我选择如下数据时,
select *
from TABLE我想得到的是第5行和第6行,这是在我之前选择后添加的。
我的想法是,我需要保留一个标识符来表示id的事务或类似的东西,但是我仍然没有捕捉到任何想法.你能帮帮我吗?任何关键字或链接帮助我?
实现refresh事件将有助于我按照我所期望的想法只获得新的数据。
谢谢各位,这是我有的更具体的桌子。
Table
---------
orderId orderTime
1 2017-9-4 8:00:00.000
1 2017-9-4 8:00:10.000
1 2017-9-4 8:00:20.000
1 2017-9-4 8:00:30.000
1 2017-9-4 8:00:40.000
1 2017-9-4 8:00:50.000
2 2017-9-4 8:00:11.000
2 2017-9-4 8:00:20.000
2 2017-9-4 8:00:32.000
2 2017-9-4 8:00:40.000并且时间记录将在orderId的基础上连续添加。大多数认为我保留最后一个orderId的想法可能不适用于我的情况。在具体的情况下我该如何处理呢?
发布于 2017-09-04 09:27:15
没有任何关键字来标识上一次执行的最新条目。因为,您的查询在不同的会话上运行两个时间。所以,你无法辨认它。
但基本上,我们还有其他选择来完成这项任务。
发布于 2017-09-04 09:29:39
您需要始终将上一个select中最大的select保存在某个地方,然后知道orderId在您的select中使用它,如下所示:
select ...
from ...
where orderId > 4发布于 2017-09-05 06:23:11
将最后一个orderId 和关联的最后一个orderTime存储在变量中。
这应该是你想要的。
DECLARE @lastOrderId int = 2
DECLARE @lastOrderTime datetime = '2017-9-4 8:00:40.000'
SELECT * FROM Table
WHERE (orderId = @lastOrderId AND orderTime > @lastOrderTime) OR orderId > @lastOrderId
ORDER BY orderId, orderTime;https://stackoverflow.com/questions/46033412
复制相似问题