Using Hierarchy data type on SQL 2008. Nodes in my hierarchy go like this:
value node
36 /8/1/
38 /8/2/
34 /8/3/
40 /8/4/
42 /8/5/
44 /8/6/
46 /8/7/
48 /8/8/
I’d like to rearrange nodes so that /8/3/ and /8/1/ switch places. Any idea on how to do this?
Only idea that I have so far is that I load all nodes on a level in Array, order them the way I want them to be, delete them from table and insert in sorted form.
If (like in your example) you know the hierarchyid values you want to manipulate in advance, you can do it directly, e.g.:
If you need to get your new hierarchyid values dynamically, take a look into the GetDescendant() and GetAncestor() functions. Using that, the example would look something like this:
Note that the hierarchyids do not stay the same in this example. At least one will end up using a ‘fraction’ for its position (e.g. ‘/8/2.5/’ instead of ‘/8/3/’).