검증쿼리 조언을 부탁드립니다. 0 2 917

by 왕보초 [Oracle 기초] [2020.11.12 12:44:03]


안녕하세요. 고수님의 조언을 부탁드립니다.

REQST_MASTR 테이블에  JOB_REQST_NO(신청번호 : PK) 필드에서 들어가 있는 데이터 중에  신청번호 이전 번호가 존재하는지 확인 하는 쿼리를 짜고 싶은데....

데이터가 많아서 그렇지 속도가 안 나오네요.. 

필드 시작 2자리는 구분코드(영문)  숫자 방식이며, 이고 구분코드는 틀리수 있습니다 (예 : SP1000000000, SE1000000001)

그런데 SP로 시작하는 신청번호 중 현재 등록된 신청번호 하나 작은 신청번호가 존재하는 확인 쿼리를 어떻게 해야 할지~~~

예로 신청번호가 SP1000004589 경우 SP1000004588 존재하는 확인하고 있으면 해당코드를 없으면 X로 표시하는  쿼리를 구성하고 싶은데.... 잘 안되네요....

 

Select
A.*
,(SELECT JOB_REQST_NO FROM REQST_MASTR  
  WHERE SUBSTR(JOB_REQST_NO, 0, 2) = 'SP' AND SUBSTR(JOB_REQST_NO, 3, 13) = A.NUMS) AS t1 
From 
(   
  SELECT JOB_REQST_NO, SUBSTR(A.JOB_REQST_NO, 3, 13) - 1 AS NUMS 
  FROM REQST_MASTR  A 
   WHERE SUBSTR(JOB_REQST_NO, 0, 2) = 'SP'
   order by JOB_REQST_NO DESC
) A 

 

 

 

by 마농 [2020.11.12 13:54:24]
WITH reqst_mastr AS
(
SELECT 'SE1000004581' job_reqst_no FROM dual
UNION ALL SELECT 'SE1000004582' FROM dual
UNION ALL SELECT 'SE1000004589' FROM dual
UNION ALL SELECT 'SP1000004581' FROM dual
UNION ALL SELECT 'SP1000004582' FROM dual
UNION ALL SELECT 'SP1000004588' FROM dual
UNION ALL SELECT 'SP1000004589' FROM dual
)
SELECT job_reqst_no
     , DECODE(SUBSTR(job_reqst_no, 3) - SUBSTR(job_reqst_no_1, 3), 1, job_reqst_no_1, 'X') x
  FROM (SELECT job_reqst_no
             , LAG(job_reqst_no) OVER(ORDER BY job_reqst_no) job_reqst_no_1
          FROM reqst_mastr
        )
;

 


by 왕보초 [2020.11.12 18:21:27]

매번 정말 감사합니다. ^^

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입