温馨提示×

Oracle unpivot 函数的基本语法是什么

小樊
81
2024-09-16 19:32:29
栏目: 云计算

Oracle UNPIVOT 函数用于将表中的多个列转换为单个列,并在输出中显示原始列名和对应值

SELECT *
FROM table_name
UNPIVOT (
  value_column_name
  FOR column_name_column
  IN (column1 AS 'column1_value', column2 AS 'column2_value', ...)
);

其中:

  • table_name:要进行逆规范化操作的表名。
  • value_column_name:新生成的值列的列名。
  • column_name_column:新生成的列名列的列名。
  • column1, column2, …:需要进行逆规范化操作的原始列名。
  • 'column1_value', 'column2_value', …:分配给原始列名的别名。

例如,假设有一个名为 sales_data 的表,包含以下列:product, q1_sales, q2_sales。要使用 UNPIVOT 函数将 q1_salesq2_sales 列转换为单个列,可以使用以下查询:

SELECT product, quarter, sales
FROM sales_data
UNPIVOT (
  sales
  FOR quarter
  IN (q1_sales AS 'Q1', q2_sales AS 'Q2')
);

这将返回一个结果集,其中包含 productquartersales 列,其中 quarter 列的值为 ‘Q1’ 或 ‘Q2’,sales 列的值为原始表中 q1_salesq2_sales 列的值。

0