Sql 如何从查询的不同行中提取值?
我必须计算列的值,根据同一个表中已知的秩对它们进行分组 制表符查找Sql 如何从查询的不同行中提取值?,sql,oracle,Sql,Oracle,我必须计算列的值,根据同一个表中已知的秩对它们进行分组 制表符查找 str_name rank en 1 bs 2 cn 3 bf 4 co 5 源表中存在的数据 “源”选项卡 id str_name 1 co 1 en 1 bf 2 bs 2 co 3 bf 3 bs 输出数据应该如下所示 id concat_str_name 1 en | bf | co
str_name rank
en 1
bs 2
cn 3
bf 4
co 5
源表中存在的数据
“源”选项卡
id str_name
1 co
1 en
1 bf
2 bs
2 co
3 bf
3 bs
输出数据应该如下所示
id concat_str_name
1 en | bf | co
2 bs | co
3 bs | bf
我可以使用诸如list\u agg之类的函数吗?这是您想要的吗
select listagg(str_name, ' | ') within group (order by rank)
from source_tab t join
tab_lookup l
on t.str_name = l.str_name
group by id;
这是你想要的吗
select listagg(str_name, ' | ') within group (order by rank)
from source_tab t join
tab_lookup l
on t.str_name = l.str_name
group by id;