在 Oracle 中将表与其自身连接

2023-12-31

对这个很困惑。

我正在尝试将一个表连接到其自身。我有以下详细信息:

PRODUCT NO           FORMAT NO             FORMAT CODE              NUMBER
1000                 1111                  P                        0
1000                 1112                  O                        0
1000                 1113                  H                        546

我想创建一个输出所有“O”格式代码的 SELECT 语句,但我想输出“546”,而不是在“NUMBER”列中输出“0”。它看起来像这样:

PRODUCT NO           FORMAT NO             FORMAT CODE              NUMBER
1000                 1112                  O                        546

所以我认为我在这里有效地将表格连接到其自身?只是不知道该怎么做......

Thanks!


始终保持简单,使用所有可用的 Oracle 内置功能。

SELECT * FROM
(     
 SELECT FORMAT_NO, FORMAT_CODE, SEQ
  , (CASE WHEN FORMAT_CODE = 'O' THEN LAG(seq, 1, 0) OVER (ORDER BY FORMAT_CODE) END) nn_seq
FROM 
(                           
SELECT 1000 PRODUCT_NO, 1111 FORMAT_NO, 'P' FORMAT_CODE, 0 SEQ FROM dual
UNION
SELECT 1000, 1112, 'O', 0 FROM dual
UNION
SELECT 1000, 1113, 'H', 546 FROM dual
)
ORDER BY 2
)
WHERE FORMAT_CODE = 'O'

/

输出: 1112 欧 0 546

在上面的查询中,您需要首先执行排序,然后根据顺序和所需的输出使用 Oracle 内置的 LAG() 或 LEAD()。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Oracle 中将表与其自身连接 的相关文章

随机推荐