Сделать рекурсивную функцию в SQL Server 2005 - PullRequest
2 голосов
/ 10 ноября 2009
cat_id  prod_name parent_cat_id
------ ---------- ------------
1   prod_1     2
2   prod_2     5
3   prod_3     1
4   prod_4     3
5   prod_5     7
6   prod_6     5

В рекурсивной функции создайте таблицу и, используя ее, если cat_id = 1 и parent_cat_id = 1, принимают это имя продукта, а если этот идентификатор категории продукта и идентификатор родительской категории совпадают, то также принимают эту запись ..

ANS IS LIKE :::

1   prod_1     2
2   prod_2     5
5   prod_5     7

1 Ответ

2 голосов
/ 10 ноября 2009
WITH    rows AS
        (
        SELECT  cat_id, prod_name, parent_cat_id
        FROM    mytable
        WHERE   cat_id = 1
        UNION ALL
        SELECT  m.cat_id, m.prod_name, m.parent_cat_id
        FROM    mytable m
        JOIN    rows r
        ON      r.parent_cat_id = m.cat_id
        )
SELECT  *
FROM    rows
...