当前位置: 首页> 文旅> 美景 > 东莞新闻头条新闻_投资公司注册条件及经营范围_如何找外包的销售团队_aso优化技术

东莞新闻头条新闻_投资公司注册条件及经营范围_如何找外包的销售团队_aso优化技术

时间:2025/9/15 2:39:06来源:https://blog.csdn.net/smilejingwei/article/details/144216245 浏览次数:0次
东莞新闻头条新闻_投资公司注册条件及经营范围_如何找外包的销售团队_aso优化技术

SQL SERVER 有个任务表,其中 id 字段是主键,parent 字段是指向 id 的外键,用于描述多个节点如何组成一棵树状。树的根节点是空,parent 为空的那些记录是根的子节点,即二级节点。weight 字段只有在叶子节点时才有值。

idnameweightparent
1t1nullnull
22t22null1
3t30.031
4t40.122
55t55null22
6t6nullnull
7t70.016
11t11155
12t12255

现在要递归计算出树形层次结构,平行节点按 id 顺序排列,新 name 字段 = 层级 * 下划线 + 原 name,用来直观表现层级关系;新 weight 字段 = 对下级所有节点的 weight 求和,level 字段表示层级。

nameweightlevel
t13.131
_t30.032
_t223.12
__t40.13
__t5533
___t1114
___t1224
t60.011
_t70.012

编写SPL代码

 AB
1=data=MSSQL.query("select * from task order by id")
2=res=create(name,weight,level)
3=data.select(!parent).(tree( id, name, weight,1))
4func tree(I,N,W,L)=r=res.insert@n(0, fill("_",L-1)+N, 0, L )
5=data.select(parent==I).sum(tree(id, name, weight, L+1) )
6return r.weight = W + B5
7return res

A1:通过JDBC查询数据库。

A2:创建空的结果集。

A3:筛选出根的子节点,并用递归函数循环处理这些节点。

A4-B6:函数tree,作用向结果集追加新记录,递归处理直属下级节点,返回新记录的weight,有四个参数,id、name、weight、level。

B4:在结果集上追加新记录,拼出新name、新level。新weight要稍后计算,这里先置为0。

B5:筛选出本节点的直属下级节点,递归计算出这些节点的weight,并求和。

B6:计算新weight并修改本记录,返回新weight。

A7:返回结果集。

SPL已开源免费,欢迎前往乾学院下载试用!

免费下载

关键字:东莞新闻头条新闻_投资公司注册条件及经营范围_如何找外包的销售团队_aso优化技术

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: