unpivot 函數(shù)能否處理空值在 Oracle 中

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

是的,UNPIVOT 函數(shù)可以處理空值

例如,假設(shè)您有一個(gè)包含空值的表格:

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 函數(shù)將其轉(zhuǎn)換為更易于分析的格式:

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

結(jié)果集將顯示原始表中的空值:

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

請(qǐng)注意,UNPIVOT 操作不會(huì)刪除或更改空值。如果需要過(guò)濾掉空值,可以在查詢(xún)中添加 WHERE 子句來(lái)實(shí)現(xiàn)。

0