是否有高效对此示例的替代SQL?我不想使用WITH ... AS,这是主要的标准SQL - 替代WITH ... AS
WITH TEMP_TABLE AS (
SELECT status, COUNT(1) as total FROM XYZ GROUP BY status
)
SELECT
NVL((SELECT TOTAL FROM TEMP_TABLE WHERE STATUS = 'A'),0) AS A_COUNT ,
NVL((SELECT TOTAL FROM TEMP_TABLE WHERE STATUS = 'B'),0) AS B_COUNT ,
NVL((SELECT TOTAL FROM TEMP_TABLE WHERE STATUS = 'C'),0) AS C_COUNT ,
NVL((SELECT TOTAL FROM TEMP_TABLE WHERE STATUS = 'D'),0) AS D_COUNT ,
NVL((SELECT TOTAL FROM TEMP_TABLE WHERE STATUS = 'E'),0) AS E_COUNT ,
NVL((SELECT TOTAL FROM TEMP_TABLE WHERE STATUS = 'F'),0) AS F_COUNT
FROM DUAL;
我读到类似的问题,但他们使用其他DDL的东西,我只想要一个基本的SQL语句。
所以,你想知道如何摆脱[CTE(HTTP的://计算器.com/questions/38775056/creating-a-cte-in-oracle)从你的陈述? CTE的功能非常强大和高效......你为什么想要摆脱它? – SQLMason
是的,我知道并喜欢它,但理由是骡子平台不支持它,至少不是一个实际的方式。请检查此http://stackoverflow.com/a/36877716/2815227 – mCeviker
感谢您的解释,我不明白 – SQLMason