Last active
September 6, 2018 10:28
-
-
Save dialogbox/454380d6a68344556350bb8dbf1d64e5 to your computer and use it in GitHub Desktop.
Example: Convert an Oracle FIRST/LAST query to EDB PAS/PostgreSQL
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
SELECT MAX(FCT_CODE) KEEP(DENSE_RANK FIRST ORDER BY FNL_UPD_DT desc, PRODC_MAGT_NO desc) AS FCT_CODE, | |
MAX(PLANT_CODE) KEEP(DENSE_RANK FIRST ORDER BY FNL_UPD_DT desc, PRODC_MAGT_NO desc) AS PLANT_CODE, | |
MAX(PRODC_MAGT_NO) KEEP(DENSE_RANK FIRST ORDER BY FNL_UPD_DT desc, PRODC_MAGT_NO desc) AS PRODC_MAGT_NO | |
FROM TBM_PM_PRODC_PRGS A | |
WHERE 1 = 1 | |
AND (A.FCT_CODE, A.PLANT_CODE) IN (('C100A', 'P105')) | |
AND (A.PRODC_MAGT_NO = '0F5PH3AH700007H' OR A.PRODC_MAGT_NO LIKE '0F5PH3AH700007H'||'_') | |
AND ROWNUM = 1 | |
-- ==> | |
SELECT MAX(FCT_CODE) AS FCT_CODE, MAX(PLANT_CODE) AS PLANT_CODE, MAX(PRODC_MAGT_NO) AS PRODC_MAGT_NO | |
FROM ( | |
SELECT FIRST_VALUE(FNL_UPD_DT) OVER W AS M_FNL_UPD_DT, FIRST_VALUE(PRODC_MAGT_NO) OVER W AS M_PRODC_MAGT_NO | |
, FNL_UPD_DT, PRODC_MAGT_NO, FCT_CODE, PLANT_CODE | |
FROM TBM_PM_PRODC_PRGS A | |
WHERE 1 = 1 | |
AND (A.FCT_CODE, A.PLANT_CODE) IN (('C100A', 'P112')) | |
AND (A.PRODC_MAGT_NO = 'CARP112F4210719' OR A.PRODC_MAGT_NO LIKE 'CARP112F4210719'||'_') | |
WINDOW W AS (ORDER BY FNL_UPD_DT desc, PRODC_MAGT_NO desc) | |
) | |
WHERE ((M_FNL_UPD_DT = FNL_UPD_DT) OR (M_FNL_UPD_DT IS NULL AND FNL_UPD_DT IS NULL)) | |
AND ((M_PRODC_MAGT_NO = PRODC_MAGT_NO) OR (M_PRODC_MAGT_NO IS NULL AND PRODC_MAGT_NO IS NULL)) | |
LIMIT 1; | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment