[MSSQL] 술어와 연산자, 연산자 우선순위
술어와 연산자
술어 : TRUE, FALSE, UNKNOWN 으로 평가되는 논리적 표현식
WHERE, HAVING, CHECK 제약조건 등이 술어에 해당
IN, BETWEEN, LIKE도 T-SQL에서 지원하는 술어.
비교연산자
표준 비교 연산자 : =, >, <, >=, <=, ><
비표준 비교 연산자 : !=, !>, !<
논리 연산자
AND, OR
산술 연산자
+, -, *, /, %
연산자 우선순위
암기 방법
() > 산술 연산자 > 비교 연산자 > 논리 연산자 > 술어 연산자 > = |
1. ()
2. *, /, %
3. +(Positive), -(Negative), +(Addition), +(Concatenation), -(Substraction)
4. =, >, <, >=, <=, <>, !=, !>, !< (Comparison operation)
5. NOT
6. AND
7. BETWEEN, IN, LIKE, OR
8. = (Assignment), 할당
4번 = 와 8번 =는 무슨 차이가 있을까?
비교연산자 = 와 대입연산자 = 를 구분하려면
쿼리문을 보고 문맥상으로 이해해야한다.
술어표현식에서 비교연산자가 잘 사용된다는 것은 알고가기
- 술어 표현식은 참, 거짓, NULL 셋중에 하나만 반환된다
- 연산 우선순위가 헷갈려서 명확히 표현하고 싶으면 괄호 () 를 사용한다.
SELECT orderid, custid, empid, orderdate |
이 쿼리는 아래 그림에서 그린 괄호와 결과가 같다.