2015-03-27 2 views
2

В одной из наших баз данных мы используем столбец HierarchyId. Затем мы выбираем строки из таблицы, как это:Сортировать по HierarchyId, но сначала с родительским

SELECT HierarchyId.ToString() 
FROM Tree 
ORDER BY HierarchyId DESC 

Это кладет ее в хорошей иерархической структуре, но со всеми узлами в обратном порядке, как это:

1/13/ 
1/12/123/ 
1/12/122/ 
1/12/121/ 
1/12/ 
1/11/ 
1/ 

Однако мы хотели бы узлы, чтобы остаться в этом порядке, но с родителем над ребенком узлы, как это:

1/ 
1/13/ 
1/12/ 
1/12/123/ 
1/12/122/ 
1/12/121/ 
1/11/ 

Единственным решением, которое я могу думать включает рекурсивный КТР, которое свело бы много преимущества использования HierarchyId. Кто-нибудь есть идеи о том, как это сделать?

Спасибо,

Джо

ответ

0

вы можете попробовать это, надеюсь, он будет работать.

SELECT HierarchyId.ToString() 
FROM Tree 
ORDER BY cast(HierarchyId as nvarchar(100)) DESC 

 Смежные вопросы

  • Нет связанных вопросов^_^