我应该自我加入吗

马特·A

我有一个表,以一种非常奇怪的方式存储信息。每个条目在数据库中都有4行。它们通过每个条目的ROW_ID字段链接,然后在1-4之间具有column_id,表示该值进入该列。

Row_id          Column_id         Value
1               1                 Value1
1               2                 Value2
1               3                 Value3
1               4                 Value4

目前,此信息是通过查询输入到Excel电子表格中的每个值来提取的,但是它正在采用4个单独的查询,每个查询都具有每列的信息

select value from table where column_id =1 order by row_id;
select value from table where column_id =2 order by row_id;
select value from table where column_id =3 order by row_id;
select value from table where column_id =4 order by row_id;

可以全部输出为一行吗?

        Column_id1    Column_id2     Column_id3     Column_id4
Row_id  Value1        Value2         Value3         Value4
戈登·利诺夫

您可以使用条件聚合,自我加入或pivot我更喜欢前者:

select row_id,
       max(case when column_id = 1 then value end) as value_1,
       max(case when column_id = 2 then value end) as value_2,
       max(case when column_id = 3 then value end) as value_3,
       max(case when column_id = 4 then value end) as value_4
from t
group by row_id;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章