테라데이터 케이스와 통합

광고

이 장에서는 경우를 설명하고 테라 데이타의 기능을 합체.

케이스 식

케이스 식은 조건 또는 절에 대해 각 행을 평가하고 첫 번째 일치의 결과를 반환합니다. 일치하는 항목이 없는 경우 반환된 다른 부분의 결과입니다.

구문

다음은 사례 식의 구문입니다.

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
광고

답글 남기기

이메일 주소는 공개되지 않습니다.