嵌套字段和枢纽字段取决于内容

时间:2018-07-27 21:52:41

标签: arrays postgresql csv select pivot

Dunno,即使有可能,但请听我说:我有一个地点列表(带有地点ID,地点名称和地点首字母缩写词)及其层次结构(相同的数据,但用逗号分隔)。

这里的想法是分解层次结构,将每个部门放在它们所属的列中。

可以使用场所首字母缩略词来过滤部门中的层次结构,但并非所有场所都遵循严格的层次结构:例如,我们可以在中间没有目录的地方进行构建。

像这样的金田:

unit id | unit name | unit acronym | hierarchy
0001    | name1     | n1           | n1
0002    | name2     | a2           | n1#a2
...
0215    | nameY     | dy           | n1#a2#dy
0435    | nameN     | en           | n1#b3#c4#en

我知道我可以使用unnest(string_to_array())将其吹成一行

unit id | unit name | unit acronym | hierarchy
0215    | nameY     | dy           | n1         
0215    | nameY     | dy           | a2        
0215    | nameY     | dy           | dy        
0435    | nameN     | en           | n1
0435    | nameN     | en           | b3
0435    | nameN     | en           | c4
0435    | nameN     | en           | en

但是我要寻找的结果是:

unit id | unit name | unit acronym | hierarchy1 | hierarchy2 | hierarchy3 | hierarchy4
0215    | nameY     | dy           | n1         | a2         |            |
0435    | nameN     | en           | n1         |            | b3         | c4

我在这里绞尽脑汁,想一想如何使“ ^ a”进入等级2,“ ^ b”进入等级3,等等...任何想法,技巧或线索?

0 个答案:

没有答案