将第一行id插入连续的行

时间:2014-07-03 08:53:26

标签: sql-server

Rid    item    color    Image         parentid
1      810     Black    Images1.jpg   NULL
2      810     Black    Images1b.jpg  2
3      810     Black    Images1c.jpg  3
4      810     pink     Images2.jpg   NULL
5      810     pink     Images2b.jpg  5
6      810     pink     Images2c.jpg  6

上面是我的@Libtemp表。现在我需要更新这个表,以便记录(2,3)的parentid必须为1,而记录(5,6)必须有parentid为4.我如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

试试这个:

UPDATE T SET
       T.parentid = (SELECT MAX(A.rid) 
                     FROM   @Libtemp A 
                     WHERE  A.rid < T.rid AND A.parentid IS NULL) 
FROM   @Libtemp T
WHERE  T.parentid IS NOT NULL