Навигация
|
PostgreSQL: Конструкция With (вызов рекурсии)Очень простой пример вызова рекурсии с помощью конструкции With в PostgreSQL: WITH RECURSIVE rec AS ( SELECT * FROM rec;
Живой пример из хранимой функции: CREATE OR REPLACE FUNCTION GetCategory (p_start_id INT)
RETURNS TABLE (name VARCHAR(100))
AS $$
WITH RECURSIVE c
AS
(
SELECT id, parent_id, name, 1 AS depth
FROM categories
WHERE Id = p_start_id
UNION ALL
SELECT cat.id, cat.parent_id, cat.name, c.depth + 1 AS Level
FROM categories cat
INNER JOIN c ON cat.Id = c.parent_id
)
SELECT name
FROM c
ORDER BY depth DESC;
$$ LANGUAGE sql;
SELECT GetCategory(51);
Комментарии пользователей Эту новость ещё не комментировалиНаписать комментарий Анонимам нельзя оставоять комментарии, зарегистрируйтесь! |
Контакты для обмена ссылками между сайтами | Видео к статьям на Youtube |
![]() |
|||||
Мои друзья: | ![]() | ![]() | ![]() | Сообщество сисадминов | ![]() | ![]() |
|
© Snakeproject.ru создан в 2013 году.При копировании материала с сайта - оставьте ссылку. |