0

I have table called Products. Let say this is my table,

ID    Name     ParentID
--    ---       --------
1      a        NULL
2      b        NULL
3      a1       1
4      a2       1
5      b2       2
6      b2       2

Now I need to add [Order] Column with respect to ParentID,

ID    Name     ParentID    Order
--    ---       --------   ----
1      a        NULL        NULL
2      b        NULL        NULL
3      a1       1            1
4      a2       1            2   
5      b2       2            1  
6      b2       2            2  

Creating [Order] is trivial but inserting record is a bit tricky part

Imran Qadir Baksh - Baloch
  • 30,546
  • 66
  • 170
  • 302

1 Answers1

3
UPDATE  [Products]
SET  [Products].[Order] = PTT.[Order]
FROM
    [Products]
    INNER JOIN (SELECT ID, ROW_NUMBER() OVER (PARTITION BY PT.ParentID ORDER BY ID) AS [Order]
                FROM [Products] PT
                WHERE PT.ParentID IS NOT NULL) AS PTT ON PTT.ID = [Products].ID
bjnr
  • 3,213
  • 16
  • 30