创建一个递归函数,该函数从数据集中获取父代字符串,并转换为其ID号

时间:2019-06-18 20:35:44

标签: sql sql-server

我正在按层次结构组织结构图中创建一个新表,但是ID的列是一个empnumber,人员名称,其用户名和其主管用户名,即“ parentID”。我想使用递归函数将其用户名转换为数字

我找到的所有解决方案都已经有一个父母编号,除了父母编号是一个字符串之外,我已经知道了

这就是我的数据集的样子

fullname, empno, userid, supervisor, supervisorcode
john, 1, jfriesen, brian steve, bsteve
brian steve, 2, bsteve, jo Jefferson, jjefferson

理想情况下,该解决方案将引用该行超代码,找到该超代码在数据集中的位置,并获取该用户的ID并将其插入parentID列

编辑:示例数据在这里,这正是我从数据库中提取出来的数据,并变成了JSON数组。

------------------------------------------------------------------------------
|-Name-|-empnum-|-jobTitle-|-deptnum-|-userid-|-supervisor-|-supercode-|
|tony tiger|000000171|Inspection Cereal|912|TTIGER|Rice Crispie|RCRISPIE|
|Rice Crispie|000000172|Supervisor Cereal|913|RCRISPIE|Tony chestnut|TCHESTNUT|
------------------------------------------------------------------------------

ID标记和ParentID标记将被生成为临时表中此数据集的临时列。

由于我有600多个记录,因此我希望达到5级深度。所需的格式应该是这样

    id: 6,
    any: 'opps'
}, {
    id: 2,
    parent: 5,
    any: 'foo',
}, {
    id: 1,
    parent: 2,
    any: 'bar'
}, {
    id: 5,
    any: 'hello'
}, {
    id: 3,
    parent: 2,
    any: 'other'
}]

但是,保留所有额外的属性非常重要。 ID和parentID对数据库而言并不重要,而对于建立层次结构图而言则至关重要。

想法是,我以后将使用https://github.com/William17/list-to-tree-lite,因此我可以基于数据集构建orgchart,但是我缺少一些为此所需的数据。

我希望这可以清除一切

0 个答案:

没有答案