오라클 데이터베이스는 단락 평가를 사용합니다. 즉, 간단한 CASE 식의 경우 데이터베이스는 expr과 비교하기 전에 모든 비교_expr 값을 평가하는 대신 expr과 비교하기 전에 각 비교_expr 값을 평가합니다. 따라서 오라클은 이전 비교_expr이 expr과 동일한 경우 비교_expr을 평가하지 않습니다. 검색된 CASE 식의 경우 데이터베이스는 각 조건을 평가하여 true인지 여부를 확인하고 이전 조건이 true인 경우 조건을 평가하지 않습니다. 이 예에서 결과 집합은 국가가 미국일 때 열 상태와 다른 모든 국가의 열 도시별로 정렬됩니다. Oracle CASE 식에는 간단한 CASE 식과 검색된 CASE 식의 두 가지 형식이 있습니다. 두 형식 모두 선택적 ELSE 절을 지원합니다. SELECT 문의 Oracle SQL IF 문은 이러한 방법 중 하나를 사용할 수 있습니다. 이 문서의 후반부에서 더 많은 예제를 사용하여 이 것을 보여 드리겠습니다. 오라클에는 디코드라는 함수가 있어 식을 확인하고 다른 값을 반환할 수 있습니다. 이 예제는 여기에 있는 대부분의 예제와 마찬가지로 각 고객의 국가를 기반으로 한 대륙을 보여 주었습니다.

Oracle CASE 문을 사용하면 SQL 문 내에서 IF-THEN-ELSE 기능을 수행할 수 있습니다. 이 문서에서 이 강력한 진술에 대해 자세히 알아보십시오. CASE 식은 오라클 8i에서 SQL에 처음 추가되었습니다. Oracle 9i는 CASE를 식 또는 문으로 사용할 수 있도록 PL/SQL에 대한 지원을 확장했습니다. 이 예제는 간단한 사례 문 구조를 사용 합니다. 이 경우 “국가” 필드라는 표현식이 CASE 키워드 바로 바로 앞에 어떻게 오는지 확인합니다. 즉, WHEN 식은 모두 해당 필드와 비교됩니다. 그러나 오라클에는 이 기능이 없습니다.

SQL 서버만 있습니다. 안녕하세요 벤! 설명은 정말 도움이되지만 여전히이 쿼리를 만들 수 없습니다. 다른 경우 내부에 사건이 있지만 두 번째 경우는 무시되고 있으며 이유를 모르겠습니다. 간단한 CASE 식에서 오라클 데이터베이스는 첫 번째 WHEN을 검색합니다. 그런 다음 expr이 비교_expr과 같고 return_expr을 반환하는 쌍을 이수합니다. WHEN 중 어느 것도 없는 경우 … 그런 다음 쌍이 이 조건을 충족하고 ELSE 절이 존재한 다음 Oracle은 else_expr을 반환합니다. 그렇지 않으면 오라클은 null을 반환합니다. 모든 return_expr 및 else_expr에 대해 리터럴 NULL을 지정할 수 없습니다. 아, 난 당신이 무슨 뜻인지 알수 있습니다. WHERE 절 내에서 수행할 수 없는 열 별칭을 참조하기 때문에 제공한 예제와 같은 CASE 문을 참조할 수 없습니다. WHERE 절에서 CASE 문을 사용하려면 “대륙” 이름을 사용하는 대신 동일한 CASE 문을 복사하여 붙여넣어야 합니다.

단순 식에 대한 식 및 조건에 대한 모든 데이터 형식과 두 식 형식에 대한 모든 결과는 동일해야 하거나 숫자 데이터 형식이 있어야 합니다. 모두 숫자인 경우 Oracle은 가장 높은 숫자 우선 순위를 가지는 인수를 결정하고 나머지 인수를 해당 데이터 유형으로 암시적으로 변환하고 해당 데이터 형식을 반환합니다. 기본적으로 오라클은 다양한 숫자 데이터 유형(숫자, BINARY_FLOAT 또는 BINARY_DOUBLE)이 있는 경우 이 명령문에 대해 반환할 데이터 형식을 계산합니다. Oracle SQL을 사용하면 디코딩 및 CASE 절을 사용하여 “부울 논리” 및 분기를 추가할 수 있습니다. 대/소문자 문은 디코딩 문을 보다 유연하게 확장합니다. 가장 간단한 형태로 Oracle CASE 함수는 일치하는 값이 발견될 때 값을 반환하는 데 사용됩니다.