数据
1; from 0; to 1; 5% ; boulder; 10% ; sand; 20%; silt
输出应如下所示:
1; from 0; to 1; 5% ; boulder
1; from 0; to 1; 10%; sand
1; from 0; to 1; 20% silt
答案 0 :(得分:0)
您可以使用unpivot
执行此操作。但是,如果数据不是太大,最简单的方法就是使用union all
:
select station, "from(m)", "to(m)", "ob.1" as Materials, Percent1 as Percent
from table t
union all
select station, "from(m)", "to(m)", "ob.2" as Materials, Percent2 as Percent
from table t
union all
select station, "from(m)", "to(m)", "ob.3" as Materials, Percent3 as Percent
from table t;
请注意,您有三列名为Percent
。这在SQL表中是不允许的,所以我假设它们有不同的名称。
如果您的表格非常大,使用cross join
或unpivot
的另一种方法通常会有更好的效果。