테라데이터 케이스와 통합
광고
이 장에서는 경우를 설명하고 테라 데이타의 기능을 합체.
케이스 식
케이스 식은 조건 또는 절에 대해 각 행을 평가하고 첫 번째 일치의 결과를 반환합니다. 일치하는 항목이 없는 경우 반환된 다른 부분의 결과입니다.
구문
다음은 사례 식의 구문입니다.
CASE <expression> WHEN <expression> THEN result-1 WHEN <expression> THEN result-2 ELSE Result-n END
예
다음 직원 테이블을 고려하십시오.
직원 없음 | 이름 | 성 | 가입 날짜 | 부서 없음 | 생년월일 |
---|---|---|---|---|---|
101 | 마이크 | 제임스 | 3/27/2005 | 1 | 1/5/1980 |
102 | 로버트 | 윌리엄스 | 4/25/2007 | 2 | 3/5/1983 |
103 | 피터 | 폴 | 3/21/2007 | 2 | 4/1/1983 |
104 | 알렉스 | 스튜어트 | 2/1/2008 | 2 | 11/6/1984 |
105 | 로버트 | 제임스 | 1/4/2008 | 3 | 12/1/1984 |
다음 예제에서는 부서 없음 열을 평가하고 부서 번호가 1 인 경우 값 1 을 반환하고 부서 번호가 3 인 경우 2 를 반환하고 그렇지 않으면 잘못된 부서로 값을 반환합니다.
SELECT EmployeeNo, CASE DepartmentNo WHEN 1 THEN 'Admin' WHEN 2 THEN 'IT' ELSE 'Invalid Dept' END AS Department FROM Employee;
위의 쿼리가 실행되면 다음 출력을 생성합니다.
*** Query completed. 5 rows found. 2 columns returned. *** Total elapsed time was 1 second. EmployeeNo Department ----------- ------------ 101 Admin 104 IT 102 IT 105 Invalid Dept 103 IT
위의 경우 표현식은 위와 동일한 결과를 생성하는 다음과 같은 형식으로 작성할 수도 있습니다.
SELECT EmployeeNo, CASE WHEN DepartmentNo = 1 THEN 'Admin' WHEN DepartmentNo = 2 THEN 'IT' ELSE 'Invalid Dept' END AS Department FROM Employee;
병합
병합은 식의 첫 번째 널이 아닌 값을 반환하는 문입니다. 식의 모든 인수가 널로 계산되면 널을 반환합니다. 다음은 구문입니다.
구문
COALESCE(expression 1, expression 2, ....)
예제
SELECT EmployeeNo, COALESCE(dept_no, 'Department not found') FROM employee;
인수가 같으면 널을 반환합니다.
구문
다음은 널리프 명령문의 구문입니다.
NULLIF(expression 1, expression 2)
예제
다음 예제에서는 부서 번호가 3 이면 널을 반환합니다. 그렇지 않으면 부서를 반환합니다.값 없음.
SELECT EmployeeNo, NULLIF(DepartmentNo,3) AS department FROM Employee;
위의 쿼리는 다음 레코드를 반환합니다. 당신은 직원 105 부서가 없음을 볼 수 있습니다. 널로.
*** Query completed. 5 rows found. 2 columns returned. *** Total elapsed time was 1 second. EmployeeNo department ----------- ------------------ 101 1 104 2 102 2 105 ? 103 2
광고