[MSSQL] 몫과 나머지 구하기 (%, MOD)

SQL Server에서는 정수와 정수를 나누면 몫만 반환되고 소수점 이하의 값은 반환되지 않는다. 그리고 나머지를 구하기 위해서는 % (나머지) 연산자를 사용하면 되며 MOD 함수는 없다. 정수(피제수)와 정수(제수)를 나눴을 경우 소수점 이하의 값도 반환받길 원한다면 피제수 또는 제수를 실수로 형 변환을 하면 소수점 이하의 값도 반환받을 수 있다.

 

MSSQL 몫, 나머지 구하기

 

몫과 나머지 구하기 (정수)

SELECT 10 / 3 AS quotient
     , 10 % 3 AS remainder

 

 

피제수(10)와 제수(3)가 모두 정수인 경우 나누기를 하면 몫만 반환된다. (소수점 이하의 값은 반환 안됨)

%(나머지) 연산자를 사용하면 나머지 값만 반환할 수 있다.

 

정수를 나눌 때 소수점 표시하기

SELECT 10.0 / 3               AS result1 
     , CONVERT(float, 10) / 3 AS result2

 

 

피제수와 제수 중 하나라도 실수(소수점) 면 몫과 소수점 이하의 값도 함께 반환된다.

 

정수를 나눗셈하여 소수점 이하의 값도 함께 반환받고 싶으면 CONVER 함수를 사용하여 정수를 실수로 형 변환을 한 후 나누기 연산을 하면 소수점 이하의 값도 함께 반환받을 수 있다.

 

몫과 나머지 구하기 (실수)

SELECT FLOOR(10.1 / 3) AS quotient
     , 10.1 % 3        AS remainder

 

 

실수를 나눗셈하여 몫만 반환받기 위해서는 FLOOR(내림) 함수를 사용하여 소수점 이하의 값을 버릴 수 있다.

 

실수를 나눗셈하여 나머지를 반환받으면 정수 부분의 나머지와 소수 부분의 나머지가 함께 반환된다.

소수 부분의 나머지를 버리고 싶으면 FLOOR 함수를 사용하면 된다. ( FLOOR(10.1 % 3) )

 

댓글

Designed by JB FACTORY