Big*_*dEO 1 sql oracle group-by isnull
我有一个查询(精简版 - 为了清晰起见,编辑添加SUM项目) -
SELECT STORENBR AS "Store",
DISPENSER AS "Model",
UPPER(TINTERSERIALNBR) AS "Serial",
SUM (CASE WHEN CLRNTSYS ='CCE' THEN GALLONS ELSE 0 END) AS "2018 CCE gallons",
SUM (CASE WHEN CLRNTSYS ='BAC' THEN GALLONS ELSE 0 END) AS "2018 BAC gallons",
SUM (CASE WHEN CLRNTSYS ='844' THEN GALLONS ELSE 0 END) AS "2018 844 gallons"
FROM table
GROUP BY STORENBR, DISPENSER, UPPER(TINTERSERIALNBR);
Run Code Online (Sandbox Code Playgroud)
工作得很好.但现在我必须在序列号字段中考虑NULL值.我试过了
SELECT STORENBR AS "Store",
DISPENSER AS "Model",
ISNULL(UPPER(TINTERSERIALNBR), "N/A") AS "Serial",
SUM (CASE WHEN CLRNTSYS ='CCE' THEN GALLONS ELSE 0 END) AS "2018 CCE gallons",
SUM (CASE WHEN CLRNTSYS ='BAC' THEN GALLONS ELSE 0 END) AS "2018 BAC gallons",
SUM (CASE WHEN CLRNTSYS ='844' THEN GALLONS ELSE 0 END) AS "2018 844 gallons"
FROM table
GROUP BY STORENBR, DISPENSER, UPPER(TINTERSERIALNBR);
Run Code Online (Sandbox Code Playgroud)
和Oracle SQL Developer告诉我ISNULL不能与GROUP BY一起使用.
我该如何工作?
您可以在单个查询中添加整个表达式:
SELECT STORENBR AS "Store",
DISPENSER AS "Model",
NVL(UPPER(TINTERSERIALNBR), "N/A") AS "Serial",
SUM (CASE WHEN CLRNTSYS ='CCE' THEN GALLONS ELSE 0 END) AS "2018 CCE gallons",
SUM (CASE WHEN CLRNTSYS ='BAC' THEN GALLONS ELSE 0 END) AS "2018 BAC gallons",
SUM (CASE WHEN CLRNTSYS ='844' THEN GALLONS ELSE 0 END) AS "2018 844 gallons"
FROM table
GROUP BY STORENBR, DISPENSER, NVL(UPPER(TINTERSERIALNBR), "N/A");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
162 次 |
| 最近记录: |