云主机测评网云主机测评网云主机测评网

云主机测评网
www.yunzhuji.net

在Oracle中实现列转行的方法

在Oracle中实现列转行的方法,可以使用PIVOT关键字,以下是详细的步骤和示例代码:

(图片来源网络,侵删)

1、创建一个包含列转行所需的数据表,我们有一个销售数据表,包含产品ID、年份和销售额。

CREATE TABLE sales (
  product_id NUMBER,
  year NUMBER,
  sales_amount NUMBER
);

2、向表中插入一些数据。

INSERT INTO sales (product_id, year, sales_amount)
VALUES (1, 2019, 1000),
       (1, 2020, 1500),
       (2, 2019, 2000),
       (2, 2020, 2500);

3、使用PIVOT关键字将列转行,假设我们要将产品ID转换为行,并将年份和销售额转换为列。

SELECT * FROM (
  SELECT 'Product 1' AS product_name, year, sales_amount
  FROM sales
  UNION ALL
  SELECT 'Product 2' AS product_name, year, sales_amount
  FROM sales
)
PIVOT (
  SUM(sales_amount)
  FOR year IN (2019, 2020)
);

这将返回以下结果:

product_name 2019 2020
Product 1 1000 1500
Product 2 2000 2500

在这个例子中,我们使用了两个子查询(UNION ALL)来模拟列转行的过程,第一个子查询返回产品1的数据,第二个子查询返回产品2的数据,我们使用PIVOT关键字将年份转换为列,并计算每个产品的销售额总和。

打赏
版权声明:主机测评不销售、不代购、不提供任何支持,仅分享信息/测评(有时效性),自行辨别,请遵纪守法文明上网。
文章名称:《在Oracle中实现列转行的方法》
文章链接:https://www.yunzhuji.net/jishujiaocheng/55157.html

评论

  • 验证码