- 실행
SELECT -100/-100*10
하면 결과는0
. - 실행
SELECT (-100/-100)*10
하면 결과는10
. - 실행
SELECT -100/(-100*10)
하면 결과는0
. - 실행
SELECT 100/100*10
하면 결과는10
.
BOL 상태 :
식에서 두 연산자의 연산자 우선 순위 수준이 같으면 식에서의 위치를 기준으로 왼쪽에서 오른쪽으로 평가됩니다.
과
Level Operators
1 ~ (Bitwise NOT)
2 * (Multiplication), / (Division), % (Modulus)
3 + (Positive), - (Negative), + (Addition), + (Concatenation), - (Subtraction), & (Bitwise AND), ^ (Bitwise Exclusive OR), | (Bitwise OR)
BOL이 잘못되었거나 내가 뭔가를 놓치고 있습니까? -
(예상 된) 우선 순위를 버리는 것 같습니다 .
SELECT -100/(-100)*10
또한 10을 반환합니다. 계산 된 후에 만 적용되어야 -
하는 -
연산자 로 취급되는 것처럼 보입니다.100*10
A / -B * C
입니다 A <div> <negate> B <multiply> C
. Negate는 문서별로 곱하기보다 우선 순위가 낮으므로 결과는 A / -(B * C)
. 당신은 부동 상수를 사용하여 더 명확하게 볼 수 있습니다 12e / -13e * 14e
대를 12e / (-13e) * 14e
대 12e / 13e * 14e
이 떨어져 우리를 던졌습니다 우리가 일반적으로 단항 마이너스 리터럴의 일부가 될 것으로 예상하기 때문이다 국지적 인 이유, 또는 적어도 매우 높은 우선 순위를 가지고 있지만, 그 방법 T-SQL이 아니다 공장.