DataBase/SQL Server

백분율 공식 사용할때 주의할 점 (MS-SQL 2008 R2기준)

탑~! 2017. 9. 20. 10:06

백분율을 구하는 공식은 다들 알고 있다시피

실존값 / 전체값 * 100 이다.

 

SELECT 30 / -100.0 * 100
SELECT 30 /  100.0 * 100

 

위처럼 두개의 SELECT문을 보면 사칙연산에 의해서 결과값은 +/- 부호만 다른 같은 결과값이 나올것이라고 예상하기 쉽다.

​하지만, 결과 값을 보면

---------------------------------------
-0.003000000

(1개 행이 영향을 받음)

---------------------------------------
30.000000

(1개 행이 영향을 받음)

 

두 개의 결과값이 다르다는 것을 알 수 있다.

이유는, 나눗셈(/) 연산에서 분모의 값이 0보다 작은 경우 곱셈(*) 연산을 먼저 수행한다.

괄호 ()로 명시하여 먼저 연산되게 해주는것이 좋다.

SELECT (30 / -100.0) * 100


728x90
반응형