STUDY/SQL
[SQL] SQL 표현식
devmel
2026. 7. 30. 12:07
개념
계산하거나 평가한 결과로 하나의 값을 반환
ex) 컬럼명, 숫자_컬럼 * 수량_컬럼, 함수명(컬럼명), CASE ... END, COALESCE(컬럼명,기본값)
종류
| 종류 | 기본형태 | 반환값 | |
| 기본값을 나타내는 표현식 |
리터럴 표현식 | 값 | 직접 작성한 값 |
| 컬럼 표현식 | 컬럼명 | 현재 행의 컬럼값 | |
| 연산자로 구성한 표현식 |
산술 표현식 | 표현식 산술연산자 표현식 | 계산된 숫자값 |
| 비교 표현식 | 표현식 비교연산자 표현식 | 조건 평가 결과 | |
| 논리 표현식 | 조건 논리연산자 조건 | 여러 조건의 평가 결과 | |
| 함수·특수 문법으로 구성한 표현식 |
함수 호출 | 함수명(표현식) | 함수가 처리한 값 |
| CASE 표현식 | CASE WHEN 조건1 THEN 결과값1 WHEN 조건2 THEN 결과값2 ... ELSE 기본_결과값 END -- 하나의 기준값을 비교 CASE 기준값 WHEN 비교값1 THEN 결과값1 WHEN 비교값2 THEN 결과값2 ... [ ELSE 기본_결과값 ] END |
조건에 따라 선택된 값 | |
| COALESCE 표현식 | COALESCE( 표현식1, 표현식2, ..., 기본값 ) |
처음 만나는 NULL이 아닌 값 | |
| NULLIF 표현식 | NULLIF(표현식1, 표현식2) | 두 값이 같다 => NULL 다름 => 첫 번재 값 |
|
| CAST 표현식 | CAST (표현식 AS 자료형) | 지정한 자료형으로 변환한 값 | |
| 조회 결과를 값으로 사용하는 표현식 | 스칼로 서브쿼리 | (SELECT ...) | 서브쿼리가 조회한 하나의 값 |
표현식이 사용되는 위치
| 위치 | 표현식의 역할 |
| SELECT | 조회 결과로 반환할 값 계산 |
| WHERE | 행을 선택할 조건 평가 |
| JOIN ON | 연결할 행의 조건 평가 |
| HAVING | 그룹을 선택할 조건 평가 |
| ORDER BY | 정렬에 사용할 값 계산 |
| UPDATE SET | 컬럼에 저장할 새로운 값 계산 |
| 함수 내부 | 함수에 전달할 값 계산 |
주의할 점
| 종류 | 설명 | 해결 |
| NULL이 포함된 연산 | 일반적으로 산술 연산에 NULL이 포함되면 결과도 NULL이 됨 ex) 숫자_컬럼 + NULL => NULL |
필요하면 COALESCE로 기본값을 지정 => COALESCE(숫자_컬럼, 0) + 계산값 |
| 반환값의 자료형 | 서로 다른 자료형을 섞으면 DBMS가 자동 변환하거나 오류가 발생할 수 있음 | CASE, COALESCE처럼 여러 후보 중 하나를 반환하는 표현식은 각 결과값의 자료형을 가능한 한 호환되게 작성 |
| 조건순서 | 범위가 겹친다면 더 구체적이거나 큰 범위의 조건부터 작성해야 함 |