unpivot 函数能否处理空值在 Oracle 中

avatar
作者
猴君
阅读量:0

是的,UNPIVOT 函数可以处理空值

例如,假设您有一个包含空值的表格:

CREATE TABLE sales_data (     product_id NUMBER,     month1 NUMBER,     month2 NUMBER,     month3 NUMBER );  INSERT INTO sales_data VALUES (1, 100, NULL, 200); INSERT INTO sales_data VALUES (2, NULL, 300, NULL); INSERT INTO sales_data VALUES (3, 400, NULL, NULL); COMMIT; 

使用 UNPIVOT 函数将其转换为更易于分析的格式:

SELECT * FROM sales_data UNPIVOT (     amount FOR month IN (month1 AS 'Month 1', month2 AS 'Month 2', month3 AS 'Month 3') ); 

结果集将显示原始表中的空值:

PRODUCT_ID MONTH      AMOUNT ---------- ---------- -------          1 Month 1       100          1 Month 3       200          2 Month 2       300          3 Month 1       400 

请注意,UNPIVOT 操作不会删除或更改空值。如果需要过滤掉空值,可以在查询中添加 WHERE 子句来实现。

广告一刻

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