Oracle
 sql >> база данни >  >> RDS >> Oracle

Присъединяване на таблица към себе си в Oracle

Винаги бъдете прости, използвайте всички налични вградени функции на 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 O 0 546

В горната заявка първо трябва да извършите подреждане, след което да използвате Oracle, вграден в LAG() или LEAD() в зависимост от реда и желания резултат.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Първи стъпки с Oracle SQL Developer в Windows

  2. Онлайн срещу офлайн архивиране

  3. Получаване на грешка PLS-00201 при създаване на тип в Oracle

  4. java.sql.SQLException:Не е намерен подходящ драйвер jdbc:oracle:thin

  5. Използване на Dapper със съхранени процедури на Oracle, които връщат курсори