91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
东阿县| SHOW| 宿迁市| 新营市| 米脂县| 丽江市| 蒙城县| 西乡县| 南郑县| 偃师市| 白玉县| 清河县| 临泉县| 昂仁县| 南通市| 确山县| 遵义县| 蒙山县| 措勤县| 肃北| 金塔县| 大埔区| 汾西县| 二连浩特市| 江安县| 云安县| 怀集县| 南昌县| 逊克县| 城市| 增城市| 朝阳市| 铁岭县| 巫溪县| 万荣县| 凤冈县| 大安市| 甘孜| 遂川县| 昭苏县| 盘锦市|