1
如何在ORACLE SQL中的PIVOT函數中將NULL替換爲0? 這是我想要編寫查詢:ORACLE SQL:我如何用Pivot函數中的NULL替換NULL
SELECT *
FROM
(
SELECT DISTINCT
CUSTOMER_ID AS CUSTOMER_ID,
CASE
WHEN CATEGORY_CODE = '01' THEN 'CAT 01'
WHEN CATEGORY_CODE = '02' THEN 'CAT 02'
WHEN CATEGORY_CODE = '03' THEN 'CAT 03'
ELSE 'OTHER' END AS CATEGORY,
SUM(ORDERS) AS ORDERS
FROM
TABLE_01
GROUP BY
CUSTOMER_ID,
CASE
WHEN CATEGORY_CODE = '01' THEN 'CAT_01'
WHEN CATEGORY_CODE = '02' THEN 'CAT_02'
WHEN CATEGORY_CODE = '03' THEN 'CAT_03'
ELSE 'OTHER' END
)
PIVOT
(
SUM(ORDERS)
FOR CATEGORY IN
(
'CAT_01',
'CAT_02',
'CAT_03',
'OTHER'
)
)
)
;
我想什麼是有一個表,當客戶沒有對特定類別的任何命令,它會返回0,而不是空。像這樣:
CUSTOMER_ID CAT_01 CAT_02 CAT_03
00001 0 100 0
00002 100 0 0
00003 0 0 100
請記住,這是有幾類和嵌套查詢的複雜查詢的一個非常簡化的部分。
你知道如果我將SUMES添加到SUM函數,它會工作嗎?像這樣: PIVOT(SUM(COALESCE(ORDERS,0))... ... – user3644952
它會起作用,並且將'ORDERS'包裝在'NVL(...,0)一樣的東西)。 – mathguy