해결된 질문
작성
·
31
0
예제 쿼리 결과에 대해 궁금한 점이 있어 질문 드립니다
쿼리 결과 i는 11이 왜 나왔는지 궁금합니다.
i 변수는 1,2,3,4,5,6,7,8,9,10,11 있는데, 쿼리 결과에서 MAX함수를 사용하지 않았는데도 11이 나온 이유는 뭔가요?
쿼리 결과 sum_value는 25가 왜 나왔는지 궁금합니다.
sum_value 변수는 1,3,5,7,9 (홀수) 있는데, 쿼리 결과에서 sum함수를 사용하지 않았는데도 25가 나온 이유는 뭔가요?
답변 1
0
안녕하세요.
i가 11이 나온 이유
WHILE문에서 i는 1부터 값이 하나씩 추가합니다. (SET i = i + 1)
그래서 i가 10일 때까지 WHILE i <= max_value가 TRUE가 되어 연산이 진행됩니다. 그리고 나서 마지막에 SET i = i +1로 i가 11이 됩니다
WHILE i <= max_value에서 i는 11이 되고, max_value는 10입니다. 그래서 False를 반환해서 IF MOD(i, 2)를 실행하지 않고 바로 끝냅니다.
이 끝난 상태에서 i를 출력하라고 해서 i가 11이 됩니다
쿼리 결과 sum_value는 25가 왜 나왔는지 궁금합니다.
SET sum_value = sum_value + i를 사용해서 홀수일 때마다 값을 더하고 있었습니다
i가 1부터 11까지 실행되면서 홀수일 때마다 값을 더해서 마지막에 SELECT 할 때 25가 나왔습니다
정리하면
둘 다 WHILE 문 안에 로직에 의해 i가 11까지 나왔고, sum_value가 25가 나왔습니다.
WHILE문이 모두 실행되고 그 후에 쿼리를 해서 모두 실행이 된 시점의 i, max_value를 추출하게 되었습니다