sql >> Databasteknik >  >> RDS >> Oracle

Gå med i ett bord för sig själv i Oracle

Håll det alltid enkelt, använd alla tillgängliga Oracles inbyggda funktioner.

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'

/

Effekt:1112 O 0 546

I ovanstående fråga måste du först utföra beställning och sedan använda Oracle inbyggd LAG() eller LEAD() beroende på ordning och önskad utdata.



  1. mysqli_query() förväntar sig minst 2 parametrar &mysqli_query():Tomma frågefelmeddelanden

  2. Beräkna körsträcka för fordon genom att subtrahera från fordonsavläsningar

  3. Vad är socket-deklarationen för, i Ruby on Rails database.yml?

  4. Stora teckenfältstorlekar i SAS