使用存储过程从分层数据创建超级菜单

时间:2011-10-01 09:23:52

标签: asp.net sql-server stored-procedures

我有一个下表。我试图使用单个存储过程创建一个超级菜单。

CategoryId        Category_name        ParentId displayorder
1                 Electronics             0         1
2                 Vehicles                0         1
3                 Computer                1         2
4                 Camera                  1         2
5                 Mobile                  1         2
6                 Car                     1         2          

我正在使用下面的查询来获得一个三列表。

;WITH Hierarchy AS
(
    SELECT Category_ID, Category_Name, Parent_ID,display_Order,show_Inmenu,Display_level
    FROM #tbl_Category
    WHERE Parent_ID = 0
    UNION ALL
    SELECT t.Category_ID, t.Category_Name, t.Parent_ID,t.display_Order,t.show_Inmenu,t.Display_level
    FROM Hierarchy h 
    INNER JOIN #tbl_Category t ON t.Parent_ID = h.Category_ID
)

SELECT top 5 c.Category_ID,c.Category_Name,
            '<div>' + (Select '<a href="index.aspx?id=' + cast(d.Category_ID as varchar(5)) +'">' +  
            d.Category_Name AS 'ul'
            From Hierarchy d
            Where d.parent_id = c.Category_ID
            ORDER BY d.Category_Name
            for xml path('')) + '</div>' as items
FROM Hierarchy c WHERE c.Parent_ID = 0 and c.show_Inmenu=1 order by c.Display_order

但是从select语句获取的数据是

enter image description here

如何从项目列中删除&lt; and &gt;

是否有任何创建表格的方法如下。

0 个答案:

没有答案