db 쿼리문 예제

다음 쿼리에서는 HAVING 절에서 CASE 식을 사용하여 SELECT 문에서 반환되는 행을 제한합니다. 9.1부터 PostgreSQL 데이터베이스는 쿼리(설명서)를 사용하여 본문 내에서 DML 문(삽입, 업데이트, 삭제)을 지원합니다. DML 문의 (독점) 반환 절을 사용하는 경우 쿼리가 실제로 데이터(예: 방금 삽입된 행)를 반환합니다. 뷰 만들기와 같은 독립 실행형 명령이 없는 경우: 선택 다음에 야 합니다. 이 쿼리(및 포함된 하위 쿼리)는 from 절에서 정의된 쿼리 이름을 참조할 수 있습니다. PostgreSQL 데이터베이스는 이점에서 다릅니다: 쿼리와 서로 독립적인 기본 문으로 각각 을 최적화합니다. case_expression이 when_expression_1과 같으면 간단한 CASE는 result_1인 해당 THEN 절에서 식을 반환합니다. 다음 쿼리는 CASE 식을 사용하여 각 제품 카테고리, 즉 CPU 5%, 비디오 카드 10%, 기타 제품 카테고리 8%의 기본 기능이 잘 지원됩니다. 제품이 다르게 행동하는 단일 영역은 이름 확인입니다. 특히 재귀로 처리되는 경우가 많다는 점은 주목할 만합니다.6 보다 미묘한 비호환성은 정규화된 테이블 이름과 관련이 있습니다(schema.table은 쿼리를 참조할 수 없음)7 및 쿼리 범위에서 사용되는 뷰(뷰 내부의 쿼리는 하지 “참조” 외부 절).8 매개 변수는 이미 쿼리 수준에서 처리 되므로 CaseQuery 수준에서 특별 한 지원을 추가할 필요가 없습니다. 이는 사실이지만 Expression이 있는 방식과 유사하게 두 개 이상의 쿼리에서 자체 포함되고 재사용할 수 있도록 유지됩니다. SQL:1999는 “문 범위 보기”를 정의하는 with 절을 추가했습니다. 데이터베이스 스키마에는 저장되지 않고, 대신 에 속한 쿼리에서만 유효합니다.

이렇게 하면 전역 네임스페이스를 오염하지 않고 명령문의 구조를 개선할 수 있습니다. case_expression이 when_expression과 일치하지 않는 경우 CASE 식은 ELSE 절에서 result_else를 반환합니다. ELSE 절을 생략하면 CASE 식은 NULL을 반환합니다. 와이드 쿼리가 여러 번 참조되는 경우 일부 데이터베이스는 이중 실행을 방지하기 위해 그 결과를 캐시합니다(즉, “구체화”). 대부분의 데이터베이스는 뷰를 처리하는 것과 동일한 방식으로 쿼리를 처리합니다. 키워드 와 같은 구문은 만들기 보기에 대 한 것과 동일 합니다: 쿼리 이름으로 시작 하 고 선택적으로3 그리고 괄호에서 반환 하는 열의 이름. 마지막으로 괄호 안에 정의 자체(쿼리)를 다시 도입하는 키워드입니다. SQL Server는 DML 문(기본적으로 업데이터 뷰 빌드)의 대상으로 with 쿼리를 사용할 수도 있습니다. 뷰는 일부 사용 사례를 포함할 수 있습니다. 그러나 이로 인해 보기가 불합리할 수 있습니다(“네임스페이스 오염”). 이러한 경우 하위 쿼리가 더 나은 옵션인 경우가 많습니다.

간단한 CASE 식은 case_expression을 같음의 첫 번째 WHEN 절인 when_expression_1에 나타나는 식과 비교합니다.