是的,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 子句來實現。