试用条件,往树里面插入一条新的记录,跟新树的结构,新的记录的父节点根据字符串的包含关系确定。
当不存在父节点时,父节点默认为根;
当存在父节点时,取任意一个节点为父节点;
当不存在子节点时,没有子节点;
当存在子节点时,获取所有子节点的层次关系,选取所有的存在子节点(或者本身)的节点,这些节点的父节点改为插入的记录的节点。
/**1、获取插入数据,默认父节点为根**/
SELECT a.id ,r.id pid,r.parent_id,CASE WHEN a.str_list = r.str_list THEN 1 /**相等**/
ELSE CASE WHEN charindex(a.str_list ,r.str_list) > 0 THEN 2 /**父节点**/
WHEN charindex(r.str_list ,a.str_list) > 0 THEN 3 END /**子节点**/
END list
INTO #data
FROM inserted a
JOIN t_w_remove r ON a.site_url = r.site_url
AND (a.str_list = r.str_list OR charindex(a.str_list ,r.str_list) > 0 OR charindex(r.str_list ,a.str_list) > 0)