好贷网好贷款

求与ORACLE中的LAG函数等价的SQL2005函数 20javawhy]

发布时间:2016-12-3 2:02:30 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"求与ORACLE中的LAG函数等价的SQL2005函数 20javawhy]",主要涉及到求与ORACLE中的LAG函数等价的SQL2005函数 20javawhy]方面的内容,对于求与ORACLE中的LAG函数等价的SQL2005函数 20javawhy]感兴趣的同学可以参考一下。

比方说我有一字段,它的值如下: 字段A a b c d e f 我在这个表中加入一个字段B,它的值是字段A错位值.描述起来比较复杂,用值来表示 字段A  字段B a           NULL b           a  c           b d           c e           d f           e  ORACLE中的LAG()函数可以实现,但不知道SQL2005有没有类似的函数.SQL2005中的LAG()函数实现的功能跟我要求的不一样 等大师们指点

干什么的

利用ID列来,A.ID=B.ID-1

SELECT a.a,b.a FROM (SELECT RN=ROW_NUMBER()OVER(ORDER BY GETDATE()),* FROM tb) a     LEFT JOIN (SELECT RN=ROW_NUMBER()OVER(ORDER BY GETDATE()),* FROM tb) b         ON a.RN=b.RN+1

--> 生成测试数据表:tb IF NOT OBJECT_ID('[tb]') IS NULL DROP TABLE [tb] GO CREATE TABLE [tb]([a] nvarchar(1)) INSERT [tb] SELECT N'a' UNION ALL SELECT N'b' UNION ALL SELECT N'c' UNION ALL SELECT N'd' UNION ALL SELECT N'e' UNION ALL SELECT N'f' GO --SELECT * FROM [tb] -->SQL查询如下: SELECT a.a,b.a FROM (SELECT RN=ROW_NUMBER()OVER(ORDER BY GETDATE()),* FROM tb) a     LEFT JOIN (SELECT RN=ROW_NUMBER()OVER(ORDER BY GETDATE()),* FROM tb) b         ON a.RN=b.RN+1 /* a    a ---- ---- a    NULL b    a c    b d    c e    d f    e (6 行受影响) */

感谢 Tony!

引用 2 楼 sql77 的回复:利用ID列来,A.ID=B.ID-1 早上没注意,刚理解大师的意思,已经结帖了.不好意思

上一篇:动态SQL符值 20fredrickhu]
下一篇:存储过程执行发生错误问题 100xuejiecn]

相关文章

相关评论