Câu hỏi: Tôi có một cái nhìn mà tôi muốn lấy từ một truy vấn đệ quy.SQL: Cách tạo chế độ xem từ truy vấn đệ quy?
Truy vấn là về cấu trúc tương tự như cái này ở đây: http://forums.asp.net/t/1207101.aspx
Và đại diện cho một treeview như một bộ dữ liệu ra lệnh.
Làm thế nào tôi có thể tạo ra một cái nhìn mà thực hiện điều này:
;WITH Tree (ID, [NAME], PARENT_ID, Depth, Sort) AS
(
SELECT ID, [NAME], PARENT_ID, 0 AS Depth, CONVERT(varchar(255), [Name]) AS Sort FROM Category
WHERE PARENT_ID = 0
UNION ALL
SELECT CT.ID, CT.[NAME], CT.PARENT_ID, Parent.Depth + 1 AS Depth,
CONVERT(varchar(255), Parent.Sort + ' | ' + CT.[NAME]) AS Sort
FROM Category CT
INNER JOIN Tree as Parent ON Parent.ID = CT.PARENT_ID
)
-- HERE IS YOUR TREE, Depths gives you the level starting with 0 and Sort is the Name based path
SELECT ID, [NAME], PARENT_ID, Depth, Sort FROM Tree
ORDER BY Sort
Bạn có thể được tốt hơn tạo ra một inline Bảng Function Quý mà thực hiện điều này. Sau đó, bạn có thể parameterise Parent_Id mà bạn vượt qua nó. –
Sẽ tốt hơn nếu bạn làm điều đó trong chế độ xem và có thể thêm uid gốc chính làm cột và truy vấn xem từ quy trình được lưu trữ. Các hàm bảng có giá trị sẽ trở nên chậm khi bạn có nhiều dữ liệu, vì chúng tạo ra các bảng tạm thời trong bộ nhớ, được đổi chỗ nếu bộ nhớ không đủ. –