SQL:仅检索值已更改的记录

标签 sql sql-server

抱歉,标题不伦不类。我将在进行过程中进行编辑。

我有一个表RateTable:

| Code   |  Date     |   Rate  |

  B001     2009-01-01   1.05
  B001     2009-01-02   1.05
  B001     2009-01-03   1.05
  B001     2009-01-04   1.05
  B001     2009-01-05   1.06
  B001     2009-01-06   1.06
  B001     2009-01-07   1.06
  B001     2009-01-08   1.07

每天都有一个条目,但费率很少变化。我可以编写一个仅返回发生费率更改的行的 SQL 查询吗?我正在使用 SQLServer

最佳答案

如果我没看错的话,您查找的不是修改后的行,而是查找费率较前一日期发生变化的行。这个查询或类似的东西应该可以做到:

SELECT  r1.Code, r1.Date, r1.Rate
FROM    RateTable r1
WHERE   r1.Rate <> (SELECT TOP 1 Rate
                   FROM    RateTable
                   WHERE   Date < r1.Date
                   ORDER BY Date DESC)

关于SQL:仅检索值已更改的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/689912/

相关文章:

sql - 将 XML 切碎并合并到单列中

sql - 根据其他行排除行 (SQL)

php - 使用 MySQLi 和 PHP 的排名系统(多次检查)

c# - 客户端同步场景下实现SqliteClientSyncProvider?

sql - 从 SQL Server 中的子查询值或其他聚合函数获取平均值

sql-server - 删除之前将重复记录移动到另一个表

sql - MSSQL 中的 INSERT 触发器 : destination table by Variable

c# - 将历史数据保存在数据库中

sql - Oracle 中 select 语句结果的逗号分隔列表

SQL:Last_Value() 返回错误结果(但 First_Value() 工作正常)