mysql where절 분기관련 질문드립니다. 0 4 519

by 박준수 [2021.09.29 19:55:45]


안녕하세요 where절 분기처리에 관련해서 질문드립니다.

예를 들어

select

    code_name

   , code_status 

from code, code_sub

where 1=1

and code.part_name = code_sub.part_name

and code.part_name = code_sub.sub_name

이러한 형태의 쿼리가 있다고 치면  아래처럼 각 로우에 code_status 값에 따라서 

and절을 아래와 같은 형태로 조건을 거는게 가능한 방법인건지 질문드립니다.

select

    code_name

   , code_status 

from code, code_sub

where 1=1

if(code_status ='U') {

    and code.part_name = code_sub.part_name

} else {

    and code.part_name = code_sub.sub_name

}

by 우주민 [2021.09.30 11:04:45]

환경이 되지 않아서 모르겠다만...

이런 식으로 처리가 될거 같긴 한데요....

code.part_name =

decode(code_status, 'U', code_sub.part_name, code_sub.sub_name)


by pajama [2021.09.30 11:57:41]

decode가 지원되는지 모르겠는데 case 로도 되네요~


by 마농 [2021.09.30 13:18:39]

해당 컬럼들이 어떤 테이블의 컬럼인지 모르겠네요.
컬럼명만 적는 것 보다는 어떤 테이블의 컬럼인지 명시해 주는게 좋습니다.

SELECT code_name
     , code_status 
  FROM code a
 INNER JOIN code_sub b
    ON a.part_name = CASE code_status WHEN 'U' THEN b.part_name ELSE b.sub_name END
;

 


by 박준수 [2021.10.01 14:01:36]

답변 감사합니다.

저도 이런식으로 작업하긴 했는데 확답 받으니깐 잘 한것 같아서 기분이 좋네요

좋은 하루 되세요~

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