UNION ALL vs UNPIVOT将列值更改为行

时间:2017-03-31 20:17:28

标签: sql postgresql

为什么要使用一种方法而不是另一种方法来获取多个列值并将它们移动到带有标签分类器和值列的行中?

1 个答案:

答案 0 :(得分:1)

从性能角度来看,

UNPIVOT更好,因为它只扫描行一次。 UNION ALL将为每个子查询扫描一次行。从理论上讲,这不一定会发生,但我不知道只能进行一次扫描的优化器。

这对于大型表或者“表”实际上是一个复杂的SQL表达式或视图尤为重要。