sql >> Databáze >  >> RDS >> Oracle

Spojení stolu k sobě v Oracle

Vždy to zjednodušte, používejte všechny dostupné integrované funkce 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'

/

Výstup:1112 O 0 546

Ve výše uvedeném dotazu musíte nejprve provést objednávku a poté použít Oracle vestavěný v LAG() nebo LEAD() v závislosti na objednávce a požadovaném výstupu.



  1. SQL:Jak vybrat jeden záznam za den, za předpokladu, že každý den obsahuje více než 1 hodnotu MySQL

  2. příkaz delete nemazání záznamů

  3. Jak používat stejný plán pro více úloh SQL Server Agent (T-SQL)

  4. _gc_fusion_compression