基于以前的值SQL SERVER 2005进行更新

基于以前的值SQL SERVER 2005进行更新,第1张

概述我需要更新这些NULL值: PK | CODE---+-------1 | 202 | NULL3 | NULL4 | 305 | NULL6 | NULL7 | NULL8 | 409 | NULL 像这样: PK | CODE-----+------------1 | 202 | 我需要更新这些NulL值:

PK |  CODE---+-------1  |   202  |   NulL3  |   NulL4  |   305  |   NulL6  |   NulL7  |   NulL8  |   409  |   NulL

像这样:

PK   |   CODE-----+------------1    |    202    |    203    |    204    |    305    |    306    |    307    |    308    |    409    |    40

它应始终基于最后的最小值.

我已经尝试了下面的代码,但它只更新了在开头有价值的那一行之前的第一行.

query

UPDATE TT SET CODE = (SELECT CODE FROM #TSPV_TEMP T2 with(nolock)WHERE T2.KEY = (tt.KEY -1))FROM #TSPV_TEMP TT with (nolock)WHERE tt.CODE IS NulL
解决方法 你可以这样做:

UPDATE TT     SET CODE = (SELECT top 1 CODE                FROM #TSPV_TEMP T2 with(nolock)                WHERE T2.KEY < tt.KEY AND                      CODE IS NOT NulL                ORDER BY KEY DESC               )    FROM #TSPV_TEMP TT with (nolock)    where tt.CODE IS NulL;

请注意子查询中的差异.这将查找更新的CODE的先前非NulL值.

总结

以上是内存溢出为你收集整理的基于以前的值SQL SERVER 2005进行更新全部内容,希望文章能够帮你解决基于以前的值SQL SERVER 2005进行更新所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1176471.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存