오라클 쿼리 질문드리겠습니다. 0 3 1,940

by 대한민국1 [PL/SQL] procedure join [2020.06.03 10:43:34]


안녕하세요 프로시저 작성 중 궁금증이 생겨서 질문드립니다.

일단 작성하려는 INSERT쿼리의 상단에서 해당하는 코드가 GROUP('G')인지 SINGLE('S')인지 조회하여 변수에 담아놓고

Group일 경우에는 테이블을 조인하여 하위코드들을 찾아와서 하위코드들을 테이블에 INSERT시키고,

Single일 경우에는 발생된 Single코드만 INSERT시키면되는 조건을 가지고있습니다.

SELECT INSERT를 하여 작성중인데

혹시 FROM절에서 IF문 같이 G일경우에 LEFT OUTER JOIN하고 S일경우 JOIN을 안하게 하려면 동적쿼리를 사용하는수밖에 없나요????

by 마농 [2020.06.03 11:19:13]
IN SERT INTO ...
SELECT ...
  FROM ...
 WHERE gb = 'G'
 UNION ALL
SELECT ...
  FROM ...
 WHERE gb = 'S'
;

 


by 대한민국1 [2020.06.03 11:50:48]

컬럼이 40여개가 넘어서 UNION ALL하면 컬럼을 두번씩 기입을 해야하니까 코드가 상당히 길어져서... ㅠㅠ

한번만 쓰고 혹시 방법이 있나해서 질문올렸습니다. 마농님 감사합니다 좋은하루되세요 !!


by 마농 [2020.06.03 16:20:28]

어차피 G 인 경우와 S 인 경우에 조회되는 컬럼 40개 정보도 다르지 않나요?
컬럼별로 조건 줘서 어느 정보를 가져올지 40번 적어 줘야 할텐데요?
즉, union all 쓰면 80 줄이지만 한줄 당 길이는 작을 것이고
조인 쓰면 40줄이면 되지만 한줄당 길이가 길어질 듯 한데요?
상세 정보가 있으면 조인 쿼리 만들어 드릴께요.

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