Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.11.23;
Скачать: CL | DM;

Вниз

получить все дочерние эл-ты дерева   Найти похожие ветки 

 
sql___   (2008-10-09 17:58) [0]

всем привет!

есть табличка с иерархической структурой(SQL Server 2005):
id INT
parentId INT

делаю запрос:
WITH c(id, lev) AS
 (SELECT b.id, 1 FROM content_tree AS b WHERE b.parentid = 0
     UNION ALL
 SELECT b.id, (lev + 1) FROM content_tree AS b INNER JOIN c ON c.id = b.parentid)
SELECT * FROM c
WHERE c.id = 1655
ORDER BY lev

результат:
 id    |  lev
1655  |   2

если же я напишу просто SELECT * FROM c, то все выберется как положено. Что я не так делаю?


 
sql___   (2008-10-09 19:09) [1]

тьфу! Надо было так:

WITH C (ID, ParentID, Text_, NestingLevel) AS
(
SELECT B.ID, B.ParentID, B.Text_, 1 FROM content_tree AS B WHERE ID = 1655
UNION ALL
SELECT B.ID, B.ParentID, B.Text_, (NestingLevel + 1) FROM content_tree AS B
 INNER JOIN C ON C.ID = B.parentID
)
SELECT * FROM c

Всем большое спасибо.



Страницы: 1 вся ветка

Текущий архив: 2008.11.23;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.013 c
3-1210259859
AlexAl-77
2008-05-08 19:17
2008.11.23
MSSQL 2005


2-1224140322
zsergey
2008-10-16 10:58
2008.11.23
Как корректно перевести большое шестнадцатеричное число в целое?


15-1222069411
Пробежал...
2008-09-22 11:43
2008.11.23
Отличия между D2007 Prof и Enterprise


2-1223894917
cruiser
2008-10-13 14:48
2008.11.23
Символ кирилицы в строке. Как определить?


2-1223632397
noob_one
2008-10-10 13:53
2008.11.23
Как передать параметром массив переменной длины