powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / как использовать рекурсию с табличным выражением
7 сообщений из 7, страница 1 из 1
как использовать рекурсию с табличным выражением
    #39716895
polin11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у меня есть рекурсия, в которой мне нужно использовать табличное выражение, что-то подобное:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
WITH  TABL1 AS(
...
)
WITH RECURSIVE T( field1, field2 ) AS (
      SELECT 
				field1,
				field2
      FROM TABLE 
      WHERE "field1" IN ( SELECT "fiel1d" from TABL1 )
UNION ALL
    ...
)
SELECT * FROM T



Не могу разобраться с синтаксисом, помогите...
...
Рейтинг: 0 / 0
как использовать рекурсию с табличным выражением
    #39716917
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
polin11,

расшифруйте, например

или ищите подобие :
http://www.sql.ru/forum/actualsearch.aspx?search=with recursive union all&sin=0&bid=7&a=&ma=0&dt=-1&s=1&so=1
...
Рейтинг: 0 / 0
как использовать рекурсию с табличным выражением
    #39716940
polin11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть рекурсивный запрос, внутри которого, есть вложенный запрос. Я хочу заменить вложенный запрос на табличное выражение, но не знаю как технически это сделать
...
Рейтинг: 0 / 0
как использовать рекурсию с табличным выражением
    #39717009
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
polin11Есть рекурсивный запрос, внутри которого, есть вложенный запрос. Я хочу заменить вложенный запрос на табличное выражение , но не знаю как технически это сделать
а что вы имеете в виду под "т-в" в постгрессе ?

помню в оракале какая-то такая шняга была, и означала что-то типа простого лейтерала. но для пж что-то не соображу, какую фигню можно обозвать "ТВ".
-- вы точно не искусственный интеллект ?
...
Рейтинг: 0 / 0
как использовать рекурсию с табличным выражением
    #39717054
Павел Лузанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
polin11,

Это?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
WITH total(num) AS (
    SELECT 5
),
result(n) AS (
    WITH RECURSIVE t(n) AS (
        VALUES (1)
      UNION ALL
        SELECT n+1 FROM t WHERE n < (SELECT num FROM total)
    )
    SELECT n FROM t
)
SELECT * FROM result;
 n 
---
 1
 2
 3
 4
 5
(5 rows)
...
Рейтинг: 0 / 0
как использовать рекурсию с табличным выражением
    #39717080
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
polin11,

Вы не говорите, что должен делать ваш запрос и не показываете его, а предлагаете гадать, в чём у вас ошибка. Но это скучно, поэтому я отказываюсь. Всё же одну ошибку заметил:

Код: sql
1.
2.
3.
4.
WITH  TABL1 AS(
...
)
WITH RECURSIVE T



Правильно

Код: sql
1.
2.
3.
4.
5.
WITH  TABL1 AS(
...
)
,
RECURSIVE T
...
Рейтинг: 0 / 0
как использовать рекурсию с табличным выражением
    #39717203
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дошло. -- (Common Table Expressions, CTE )
что-то я стал тормозить.
тогда рекурсив пишется один раз перед первым цте, который не обяза быть рекурсивным.
т.е. сразу за with-ом
независимо от того, сколько рекурсивных цте вы в перечислении напишете. хоть ни одного. т.к. признаком рекурсивности далее будет наличие рекурсив-юниона.

polin11
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
WITH RECURSIVE TABL1 AS(
...
)
, таб2 as (.......) --- может быть и рекурсивным и нет
, T( field1, field2 ) AS (
      SELECT 
				field1,
				field2
      FROM TABLE 
      WHERE "field1" IN ( SELECT "fiel1d" from TABL1 )
 UNION ALL
    ...
)
, табЭН as (.......) --- может быть и рекурсивным и нет

SELECT * FROM T




это не совсем логично, но так оно сделано.
или через вложенные , как павел рекомендует.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / как использовать рекурсию с табличным выражением
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]