powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Построить запрос (возможно рекурсия)
6 сообщений из 6, страница 1 из 1
Построить запрос (возможно рекурсия)
    #39855164
ogienko_ev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, не могу построить запрос. Фото, что должно быть на выходе приложил.

Есть таблица, где поля Id, ParentId.

Мне нужно подать на вход значение id (99999), запрос должен вернуть всех косвенных родителей для данной записи. Это вообще реально сделать однтм запросом?

Может быть есть лучше/проще способы?
...
Рейтинг: 0 / 0
Построить запрос (возможно рекурсия)
    #39855169
ogienko_ev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, и текущую строку тоже надо вернуть, потому что там находится ParentId, для входного Id.
...
Рейтинг: 0 / 0
Построить запрос (возможно рекурсия)
    #39855171
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ogienko_ev,

cte
...
Рейтинг: 0 / 0
Построить запрос (возможно рекурсия)
    #39855188
londinium
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
USE master
GO


DECLARE @InTemp TABLE(ID INT,PARENT_ID INT);
INSERT @InTemp(ID,PARENT_ID)
 VALUES(9,0),(999,9),(99999,999);

DECLARE @InStart INT;
SELECT @InStart=99999;

WITH CTE AS
(
  SELECT ID,PARENT_ID
  FROM @InTemp
  WHERE ID=@InStart
  
  UNION ALL
  
  SELECT TAB.ID,TAB.PARENT_ID
  FROM @InTemp AS TAB
  JOIN CTE AS X ON TAB.ID=X.PARENT_ID
  
  
) 
SELECT C.ID,C.PARENT_ID
FROM CTE AS C
OPTION (MAXRECURSION 100)



З.Ы. Фото задания просто шикарное
...
Рейтинг: 0 / 0
Построить запрос (возможно рекурсия)
    #39855193
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше, всё-таки, не фотографии присылать, а текст с необходимой информацией.
Которую хотя бы можно было скопипастить в виде текста (кода, словесной постановки задачи и т.п.).
Причём код можно было бы сразу вставить в SQL Server Manager и выполнить.
Например, создать у себя таблицы и наполнить их данными.

Это же для вас элементарно, разве нет?
...
Рейтинг: 0 / 0
Построить запрос (возможно рекурсия)
    #39855194
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
londinium
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
USE master
GO


DECLARE @InTemp TABLE(ID INT,PARENT_ID INT);
INSERT @InTemp(ID,PARENT_ID)
 VALUES(9,0),(999,9),(99999,999);

DECLARE @InStart INT;
SELECT @InStart=99999;

WITH CTE AS
(
  SELECT ID,PARENT_ID
  FROM @InTemp
  WHERE ID=@InStart
  
  UNION ALL
  
  SELECT TAB.ID,TAB.PARENT_ID
  FROM @InTemp AS TAB
  JOIN CTE AS X ON TAB.ID=X.PARENT_ID
  
  
) 
SELECT C.ID,C.PARENT_ID
FROM CTE AS C
OPTION (MAXRECURSION 100)




З.Ы. Фото задания просто шикарноеMAXRECURSION 100 и так задано по умолчанию.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Построить запрос (возможно рекурсия)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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