【问题标题】:Alternative LAG function in SQL Server 2005SQL Server 2005 中的替代 LAG 函数
【发布时间】:2014-04-09 11:24:16
【问题描述】:

也许有人可以帮助我。我正在使用 SQL Server 2005,但无法使用 lag 函数。

我有一张桌子:

2014-02-03 07:42:00.000
2014-02-03 18:49:00.000
2014-02-06 14:54:00.000
2014-02-07 17:58:00.000
2014-02-20 13:39:00.000

我怎样才能得到这个结果:

2014-02-03 07:42:00.000 NULL
2014-02-03 18:49:00.000 2014-02-03 07:42:00.000 
2014-02-06 14:54:00.000 2014-02-03 18:49:00.000 
2014-02-07 17:58:00.000 2014-02-06 14:54:00.000 
2014-02-20 13:39:00.000 2014-02-07 17:58:00.000 

【问题讨论】:

    标签: tsql sql-server-2005


    【解决方案1】:

    假设你的表被称为 dt 和列 x 那么:

        select x,(select max(x) from dt d2 where d2.x<d1.x) from dt d1 
    

    【讨论】:

    【解决方案2】:

    即使在 SQL Server 7 中也无法正常工作!

    fiddle

    select min(date),null from datetable
    union
    select t1.date, max(t2.date)
    from dateTable t1
    join dateTable t2 on t2.date < t1.date
    group by t1.date
    

    【讨论】:

    猜你喜欢
    • 2019-04-29
    • 2021-04-12
    • 1970-01-01
    • 2016-06-08
    • 2018-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多