• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    해결됨

max함수를 써서 풀지는 못하나요?

23.02.23 03:31 작성 조회수 178

0

Select Case When mod(id,2) != 0 then id+1 When mod(id,2) = 0 then id-1 When id = max(id) then id-1 END as id , student From Seat Order by id

위와 같이 했는데

| id | student |
| -- | ------- |
| 2 | Abbot |

라는 결과를 내놓네요.

답변 1

답변을 작성해보세요.

0

Select Case When mod(id,2) != 0 then id+1 -- 홀수
            When mod(id,2) = 0 then id-1  -- 짝수
            When id = max(id) then id-1 END as id 

CASE 문을 위와 같이 작성해 주셨는데, 첫번째 줄(홀수 판단)과 두번째 줄(짝수 판단)에 의해 모든 id에게 값이 부여됩니다.
id가 1부터 5까지 홀수 개수로 존재할 경우, 마지막 값(홀수)인 5가 첫번째 줄에 의해 이미 값이 정해지기 때문에 세번째 줄까지 도달해서 판단받는 일이 없다는 뜻입니다. 그러므로 정답과는 다른 output이 반환됩니다.