Pages

Hàm trả về nút con của nút hiện hành trong cấu trúc cây hierarchyid

 -- Hàm trả về nút con của nút hiện hành trong cấu trúc cây hierarchyid --

-- by code4viet --
-- Mục đích dùng để thêm các nút con vào nút cha chỉ định --
-- parent.GetDescendant ( con1 , con2 )
-- parent nút cha cần lấy nút con của nó
-- ghi chú:
-- nếu parent.GetDescendant ( null , null ): hàm trả về nút con đầu tiên của nút cha.
--ví dụ nút cha có giá trị /1/1 khi gọi hàm thì trả về /1/1/1
-- nếu parent.GetDescendant ( con1 , null ): hàm trả về nút con của nút cha tiếp theo của nút con1.
--ví dụ nút cha có giá trị /1/1 nút con1 là 1/1/1 khi gọi hàm thì trả về /1/1/2
-- nếu parent.GetDescendant ( null , con2 ): hàm trả về nút con của nút cha giữa trước nút con2.
--ví dụ nút cha có giá trị /1/1 nút con2 là 1/1/2 khi gọi hàm thì trả về /1/1/1
-- nếu parent.GetDescendant ( con1 , con2 ): hàm trả về nút con của nút cha giữa 2 nút con1 và con2.
--ví dụ nút cha có giá trị /1/1 nút con1 là 1/1/1 và nút con2 là /1/1/2 khi gọi hàm thì trả về /1/1/1.1

DECLARE @parent hierarchyid, @con1 hierarchyid, @con2 hierarchyid;  
 
SET @parent = CAST('/1/1/' AS hierarchyid);  
SET @con1 = CAST('/1/1/1/' AS hierarchyid);  
SET @con2 = CAST('/1/1/2/' AS hierarchyid);  
 
-- nếu parent.GetDescendant ( null , null ): hàm trả về nút con đầu tiên của nút cha
-- ví dụ nút cha có giá trị /1/1 khi gọi hàm thì trả về /1/1/1  
select 'parent.GetDescendant ( null , null )->',@parent.GetDescendant ( null , null ).ToString()
-- nếu parent.GetDescendant ( con1 , null ): hàm trả về nút con của nút cha tiếp theo của nút con1
-- ví dụ nút cha có giá trị /1/1 nút con1 là 1/1/1 khi gọi hàm thì trả về /1/1/2
select 'parent.GetDescendant ( con1 , null )->',@parent.GetDescendant ( @con1 , null ).ToString()
-- nếu parent.GetDescendant ( null , con2 ): hàm trả về nút con của nút cha giữa trước nút con2.
-- ví dụ nút cha có giá trị /1/1 nút con2 là 1/1/2 khi gọi hàm thì trả về /1/1/1
select 'parent.GetDescendant ( null , con2 )->',@parent.GetDescendant ( null , @con2 ).ToString()
-- nếu parent.GetDescendant ( con1 , con2 ): hàm trả về nút con của nút cha giữa 2 nút con1 và con2.
-- ví dụ nút cha có giá trị /1/1 nút con1 là 1/1/1 và nút con2 là /1/1/2 khi gọi hàm thì trả về /1/1/1.1
select 'parent.GetDescendant ( con1 , con2 )->',@parent.GetDescendant ( @con1 , @con2 ).ToString()

Không có nhận xét nào :

Đăng nhận xét