sql >> Database >  >> RDS >> Oracle

Een tabel aan zichzelf toevoegen in Oracle

Houd het altijd simpel, gebruik alle beschikbare ingebouwde Oracle-functies.

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'

/

Uitgang:1112 O 0 546

In bovenstaande zoekopdracht moet u eerst de bestelling uitvoeren en vervolgens de in Oracle ingebouwde LAG() of LEAD() gebruiken, afhankelijk van de volgorde en de gewenste uitvoer.



  1. Rails - hoe grote getallen op te slaan, zoals 100000076685963

  2. FIND_IN_SET() equivalent in SQL Server

  3. Hoe getallen naar woorden te converteren - ORACLE

  4. Doorsnede zoeken met activerecord