안녕하세요...쿼리가 간질간질한데요...
| SU | GUBUN1 | GUBUN2 | GUBUN3 |
| 1 | R100 | R111 | R112 |
| 2 | R200 | R212 | R222 |
| 3 | R300 | R313 | R333 |
| 4 | R400 | R414 | R444 |
이런 데이터 형식입니다..
요청사항은
파라메타값이 'R212' 일경우
(1).GUBUN1 = 'R212' 먼저 검색하고 값이 있으면 그 행의 SU값을 가지고 오고.
(2).(1)의 값이 없을 경우
GUBUN2 = 'R212'를 다시 찾아 값이 있으면 그 행의 SU값을 가지고 오고
(3).(2)도 없을 경우
GUBUN3='R212'를 다시 찾아 값이 있으면 그 행의 SU값을 가지고 오게 하는 요청입니다.
제가 생각한건
WHERE문의 OR 구문인데 그러면 순차적(GUBUN1 - > GUBUN2 -> GUBUN3)이 순서대로 나오는게 아니라서 자꾸 간질간질하네요...
고수님들의 자문을 구합니다...
gubun1,2,3 에 겹치는 값은 없어 보이는데 맞나요?
중복값이 없다면 질문처럼 단계별로 경우의 수를 따져가면서 복잡하게 생각할 필요가 없어 보입니다.
SELECT su FROM t WHERE 'R212' IN (gubun1, gubun2, gubun3) ;
고맙습니다.
전 gubun1= 이런식으로 시작해서 그랬나봅니다.
다시 한번 배웁니다