【发布时间】:2014-10-27 10:19:12
【问题描述】:
我需要更新这些 NULL 值:
PK | CODE
---+-------
1 | 20
2 | NULL
3 | NULL
4 | 30
5 | NULL
6 | NULL
7 | NULL
8 | 40
9 | NULL
像这样:
PK | CODE
-----+------------
1 | 20
2 | 20
3 | 20
4 | 30
5 | 30
6 | 30
7 | 30
8 | 40
9 | 40
它应该始终基于最后一个最小值。
我已经尝试了下面的代码,但它只是更新了开头有值的那一行之前的第一行。
查询
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
【问题讨论】:
标签: sql sql-server sql-server-2005 sql-update logic