请注意,我不知道这种“金字塔格式”是否有正式名称:我可能使用了不正确的约定。
我需要创建一个能够在此表中获取数据的 SQL 脚本。
这个想法是优先考虑信息最多的记录。意思应该是:
...等等。
我试图避免的是进行多个 JOIN 来实现结果,所以我想联系一下,看看您是否知道更有效的选择。
这是模拟该表的示例 SQL。
WITH MAIN_TABLE AS (
SELECT '112' MCU, '431' MPF, 9999 AN8, 'VAL001' PRODF, 'VAL002' PRODM, 'TEST-MR-001' LITM FROM DUAL UNION
SELECT '112' MCU, '431' MPF, 9999 AN8, 'VAL001' PRODF, 'VAL002' PRODM, ' ' LITM FROM DUAL UNION
SELECT '112' MCU, '431' MPF, 9999 AN8, 'VAL001' PRODF, ' ' PRODM, ' ' LITM FROM DUAL UNION SELECT '112' MCU, '431' MPF, 9999 AN8, ' ' PRODF, ' ' PRODM, ' ' LITM FROM DUAL UNION
SELECT '112' MCU, '431' MPF, 0 AN8, ' ' PRODF, ' ' PRODM, ' ' LITM FROM DUAL UNION SELECT '112' MCU, ' ' MPF, 0 AN8, ' ' PRODF, ' ' PRODM, ' ' LITM FROM DUAL)
---- ---- ---- ---- ---- ---- ---- ----
SELECT * FROM MAIN_TABLE;
您可以通过 ORDER BY 子句来控制它
SELECT * FROM MAIN_TABLE
ORDER BY MPF, AN8, PRODF, PRODM, LITM
单片机 | 强积金 | AN8 | 产品 | 产品DM | LITM |
---|---|---|---|---|---|
112 | 0 | ||||
112 | 431 | 0 | |||
112 | 431 | 9999 | |||
112 | 431 | 9999 | VAL001 | ||
112 | 431 | 9999 | VAL001 | VAL002 | |
112 | 431 | 9999 | VAL001 | VAL002 | 测试-MR-001 |