OPs request for an explanation 다음 작품들이 내가 불확실한 점을 던졌다.오라클 산술에서 + 또는 - 연산자 우선 순위가 있습니까?
select sysdate + (interval_difference * 1440) - sysdate
from (select systimestamp - (systimestamp - 1) as interval_difference
from dual)
즉, 더하기 또는 빼기 연산자 우선 순위가 있습니까? The documentation1는
+----------------------------+-------------------------------------------+ | Operator |Operation | +------------------------------------------------------------------------+ | +, - (as unary operators) | Identity, negation, location in hierarchy | | , PRIOR, CONNECT_BY_ROOT | | +----------------------------+-------------------------------------------+ | *,/ | Multiplication, division | +----------------------------+-------------------------------------------+ | +, - (as binary operators) | Addition, subtraction, concatenation | | , || | | +----------------------------+-------------------------------------------+
쿼리 일단 환원을 다음과 같이, 조작 순서를 나열 date + interval - date
된다. 그러나 interval - date
부분은 is invalid입니다.
운영자 우선 순위에 따라 2 진수보다 2 진수를 더한 값이 있거나 오라클이 하나의 연산이 유효하지 않고 다른 연산이 유효하지 않음을 알기 쉽기 때문에 연산이 작동합니까? (즉, datetime/interval 연산에 해킹당했습니다.)?
즉, date + interval - date
은 (date + interval) - date
으로 실행되고 date + (interval - date)
이 아닌 이유는 무엇입니까?
+ 앞에 배치 된 문서는 +가 우선하지만 실제로는 성공하지 못했다는 것을 암시하는 것으로 해석 될 수 있으며이 작업이 성공했다는 사실을 증명할 수도 있습니다. 실행하면 될 수 없다는 것을 제외하고는 다른 방법으로.
+에 우선 순위가있는 정보가 있지만 상황은 모두 있습니다. 이것은 증명할 수있는 방법일까요? 그러나 10g 및 9i의 문서 당연히이다 11.2
1.
이제 나는 정말 어리 석다 .--). 기본 수학을 기억할 수 없다 ... 그리고 네, 단지 문서를 다시 읽고 그것을 보았습니다 .--(감사합니다! – Ben
[PL/SQL 해당] (http://docs.oracle.com/cd/E11882_01/) appdev.112/e25519/fundamentals.htm # sthref127)는 '우선 순위가 동일한 연산자는 특별한 순서가없이 평가됩니다.'라고 말합니다. –
@AlexPoole : Crazy! 당신이 그걸 정말로 의미한다고 생각합니까? – ruakh