SAP HANA поддерживает Рекурсивная логика SQLScript , начиная с HANA 2 SP04.Таким образом, вы можете реализовать свой запрос рекурсивным способом, используя рекурсивные хранимые процедуры.
Учитывая ваши требования, вам может быть лучше взглянуть на то, что предоставляет SAP HANA вместо с рекурсивными выражениями общих таблиц: A Модель данных иерархии .
С ее помощью вы можете определить свою иерархию (это в основном то, что вы описали в своем вопросе) изатем задайте много разных вопросов, например, "что все фрукты ниже винограда?"или "какие фрукты имеют" яблоко "в качестве прямого родителя?"и много других.Это работает без какой-либо дорогостоящей рекурсии и теперь доступно в HANA уже несколько лет.
Еще одно преимущество этого подхода заключается в том, что иерархическая структура явно определяется, а не подразумевается, что вы просматриваете данные.На мой взгляд, это облегчает разделение мышления о том, как устроена иерархия, и вопроса, на который вы хотели бы ответить.
Единственный недостаток, который я вижу в этом, заключается в том, что эти функции, конечно, являются собственностью и не могутиспользовать 1: 1 на другой СУБД.Кроме того, если вы никогда ранее не работали с иерархическими данными в СУБД и только пытались скопировать решения, которые вы где-то нашли, то это потребует некоторого собственного мышления / изучения с вашей стороны;то есть есть кривая обучения.