sql except 예제

Employee 테이블에는 290개의 행이 포함되어 있습니다. 이전 예제에서 확인할 수 있듯이 212및 274의 BusinessEntityID 값이 있는 테이블의 두 행은 JobCandidate 테이블의 두 행과 일치하며 BusinessEntityID 값도 212 및 274입니다. 즉, 이러한 두 행은 위의 쿼리 결과 집합에서 제외되어야 합니다. 쿼리는 BusinessEntityID 값이 1부터 290까지인 288개의 행을 반환합니다. 그러나, 아이디 212 및 274는 그 결과에 포함되지 않는다. 다음 쿼리에는 쿼리를 제외한 SQL 서버를 작성하는 동안 발생하는 일반적인 오류 목록이 표시됩니다. 이를 위해 [SQL 자습서] 데이터베이스에 있는 두 테이블(직원 및 고용)을 사용합니다. 다음 예제는 INTERSECT 및 EXCEPT 연산자사용으로 표시됩니다. 첫 번째 쿼리는 PRODUCTION.Product 테이블의 모든 값을 반환하여 INTERSECT 및 EXCEPT 결과와 비교합니다. 이 예제에서 첫 번째 쿼리는 모든 제품을 반환합니다. 두 번째 쿼리는 판매가 있는 제품을 반환합니다. 따라서 결과 집합에는 판매가 없는 제품만 포함됩니다.

또는 SQL을 제외한 SQL이 오른쪽에 없는 왼쪽 테이블의 모든 레코드를 반환한다고 말할 수 있습니다. 아래 이미지는 SQL Server를 이해하는 데 도움이 됩니다. T1 및 T2를 제외하면 T2 결과 집합에 나타나지 않는 T1 결과 집합의 고유한 행인 1을 반환합니다. 위의 스크린 샷에서 2, 7, 9, 11 ~ 14 레코드를 제외하고 Employee의 나머지 10 개의 레코드가 Employ 테이블에 있기 때문에 7 행이 반환되는 것을 관찰 할 수 있습니다. 그리고 우리의 제외 연산자는 직원에서 별개의 기록만 선택합니다. 이 예제에서 원은 두 개의 쿼리를 나타냅니다. 주황색 원은 왼쪽 쿼리입니다. 반면, 파란색 원은 오른쪽입니다. 각 원 내의 영역은 해당 쿼리의 결과를 나타냅니다.

첫 번째 예제에서는 UNION 연산자가 두 뷰에 조인하여 오늘 먹은 모든 것을 반환합니다. 이를 위해 [SQL 자습서] 데이터베이스에 있는 두 테이블(고용 및 직원 2016)을 사용할 예정입니다. 같지 않은 열 길이의 작업을 제외하고 SQL을 수행할 때 어떤 일이 발생하는지 살펴보겠습니다. 보시다시피 INTERSECT 연산자의 한계를 해결했으며 이제 테이블 중 하나에서 추가 정보를 반환하고 있습니다. 추가 정보를 포함하기 위해 CTE를 다른 테이블에 조인할 수도 있습니다. 예를 들어, 직원의 이름과 성을 검색하기 위해 Person 테이블에 내가 가진 것을 조인했을 수 있습니다.