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

avatar
作者
猴君
阅读量:0

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 列的值。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!