У меня есть иерархия в моих таблицах, как это.
/1/ - This is Category
/1/1/ - This is SubCategory
/1/1/1/ - This is Item
/1/1/2/ - Item
/1/1/3/ - Item
/1/2/ - SubCategory
/1/2/1/ - Item
/1/2/2/ - Item
/1/2/3 - Item
Я хочу получить последнего ребенка независимо от категории, подкатегории или элементов, используя SQL-запрос. Например. Если его категория, он вернет /1/ ; Если это подкатегория, она должна возвращать /1/ или /2/ (второй дочерний элемент/последний дочерний элемент); Если это Item, он должен вернуть 3-й ребенок/последний ребенок.
Я попробовал этот запрос. Но он возвращает мне только первую часть.
SELECT PricedItemHID.GetAncestor(PricedItemHID.GetLevel() -1) FROM ItemsList
/1/
(или/2/
, или/3/
)? По сути, последние три символа? Вам, вероятно, придется преобразовать в char, а затем выполнить поиск/подстроку. Не похоже, что есть что-то, что возвращает идентификатор уровня как таковой; в документации утверждается, что это всего лишь логическое представление, поэтому текущее значение может отличаться от того, что вы ожидаете. - person Clockwork-Muse   schedule 21.06.2015