DECLARE @i INT = 1 -- 1부터 시작
DECLARE @hap BIGINT = 0 -- 합계
WHILE (@i < 100)
BEGIN
IF(@i % 7 = 0)
BEGIN
SET @hap += @i
SET @i += 1
END
END
PRINT N'합계 = ' + CAST(@hap AS NCHAR(10))
이렇게 해서 100이하의 7의 배수를 더해보려고 하는데
왜 무한루프를 도는지 제 소스 어디가 잘못된건지 모르겠습니다.ㅠㅠ
아그러네요! 정말 감사합니다.
혹시
DECLARE @i INT = 1 -- 1부터 시작
DECLARE @hap BIGINT = 0 -- 합계
WHILE (@i <= 100)
BEGIN
IF(@i % 7 = 0)
BEGIN
SET @i += 1
CONTINUE
END
ELSE
BEGIN
SET @hap += @i
SET @i += 1
END
END
PRINT N'합계 = ' + CAST(@hap AS NCHAR(10))
이 쿼리와
DECLARE @i INT = 1 -- 1부터 시작
DECLARE @hap BIGINT = 0 -- 합계
WHILE (@i <= 100)
BEGIN
IF(@i % 7 = 0)
BEGIN
SET @i += 1
END
SET @hap += @i
SET @i += 1
END
PRINT N'합계 = ' + CAST(@hap AS NCHAR(10))
이 쿼리가 같은 값이 나오는데요
책에서 CONTINUE를 만나면 하위 쿼리 진행없이 WHILE조건문으로 돌아간다고 봐서
제 생각에는 두번째 쿼리에서는
SET @i += 1 가 두번돌아서 값이 다르게 나와야 할것같은데
왜 같은 값이 나오는지 궁금합니다.