亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

Oracle pivot函數處理空值的方法

小樊
101
2024-09-02 15:18:17
欄目: 云計算

在Oracle中,PIVOT函數用于將行數據轉換為列數據

以下是一個使用PIVOT函數處理空值的示例:

假設我們有一個名為SALES_DATA的表,其中包含以下數據:

PRODUCT | MONTH | SALES
--------|-------|-------
A       | 1     | 100
A       | 2     | 200
B       | 1     | 150
B       | 3     | 300

我們想要將這些數據轉換為以下格式:

PRODUCT | MONTH_1 | MONTH_2 | MONTH_3
--------|---------|---------|---------
A       | 100     | 200     | NULL
B       | 150     | NULL    | 300

為了實現這個目標,我們可以使用PIVOT函數,并使用NVL函數處理空值。以下是SQL查詢:

SELECT *
FROM (
    SELECT PRODUCT, MONTH, SALES
    FROM SALES_DATA
)
PIVOT (
    SUM(SALES)
    FOR MONTH IN (1 AS MONTH_1, 2 AS MONTH_2, 3 AS MONTH_3)
)
ORDER BY PRODUCT;

這將返回預期的結果。如果您希望將空值替換為特定值(例如0),可以使用NVL函數。以下是修改后的查詢:

SELECT PRODUCT,
       NVL(MONTH_1, 0) AS MONTH_1,
       NVL(MONTH_2, 0) AS MONTH_2,
       NVL(MONTH_3, 0) AS MONTH_3
FROM (
    SELECT PRODUCT, MONTH, SALES
    FROM SALES_DATA
)
PIVOT (
    SUM(SALES)
    FOR MONTH IN (1 AS MONTH_1, 2 AS MONTH_2, 3 AS MONTH_3)
)
ORDER BY PRODUCT;

這將返回以下結果:

PRODUCT | MONTH_1 | MONTH_2 | MONTH_3
--------|---------|---------|---------
A       | 100     | 200     | 0
B       | 150     | 0       | 300

0
吕梁市| 齐齐哈尔市| 宁阳县| 镇康县| 蒙山县| 乌审旗| 庆阳市| 日喀则市| 长乐市| 泊头市| 比如县| 资溪县| 伽师县| 崇阳县| 康乐县| 勃利县| 无为县| 筠连县| 绿春县| 乐东| 永靖县| 台东县| 沙雅县| 冀州市| 芦溪县| 长宁区| 太仆寺旗| 武邑县| 仪陇县| 潼南县| 丰县| 司法| 沾益县| 荣成市| 博乐市| 泾源县| 岳阳县| 中西区| 东阿县| 罗定市| 安国市|