溫馨提示×

Oracle unpivot 函數(shù)的基本語法是什么

小樊
81
2024-09-16 19:32:29
欄目: 云計(jì)算

Oracle UNPIVOT 函數(shù)用于將表中的多個(gè)列轉(zhuǎn)換為單個(gè)列,并在輸出中顯示原始列名和對應(yīng)值

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

其中:

  • table_name:要進(jìn)行逆規(guī)范化操作的表名。
  • value_column_name:新生成的值列的列名。
  • column_name_column:新生成的列名列的列名。
  • column1, column2, …:需要進(jìn)行逆規(guī)范化操作的原始列名。
  • 'column1_value', 'column2_value', …:分配給原始列名的別名。

例如,假設(shè)有一個(gè)名為 sales_data 的表,包含以下列:product, q1_sales, q2_sales。要使用 UNPIVOT 函數(shù)將 q1_salesq2_sales 列轉(zhuǎn)換為單個(gè)列,可以使用以下查詢:

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

這將返回一個(gè)結(jié)果集,其中包含 productquartersales 列,其中 quarter 列的值為 ‘Q1’ 或 ‘Q2’,sales 列的值為原始表中 q1_salesq2_sales 列的值。

0