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进行更新所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)