ALL, DISTINCT, DISTINCTROW, TOP 조건자

ALL, DISTINCT, DISTINCTROW, TOP 조건자

쿼리에서 선택한 레코드를 SQL 지정합니다.

구문

[all | DISTINCT | DISTINCTROW | [TOP n [PERCENT]]
FROM 테이블

이러한 술어가 포함된 SELECT 문에는 다음 부분이 있습니다.

구성 요소

설명

ALL

프레지드 중 하나를 포함하지 않는 경우를 가정합니다. Microsoft Access 데이터베이스 엔진은 명령문의 조건을 충족하는 모든 SQL 선택합니다. 다음 두 예제는 동일하며 Employees 테이블의 모든 레코드를 반환합니다.

SELECT ALL *
FROM Employees
ORDER BY EmployeeID;
SELECT *
FROM Employees
ORDER BY EmployeeID;

DISTINCT

선택한 필드에 중복 데이터가 포함된 레코드를 생략합니다. 쿼리 결과에 포함하려면 SELECT 문에 나열된 각 필드의 값은 고유해야 합니다. 예를 들어 Employees 테이블에 나열된 여러 직원의 성은 같을 수 있습니다. 두 레코드에 LastName 필드에 Smith가 SQL 포함되는 레코드가 하나만 반환됩니다.

SELECT DISTINCT LastName
FROM Employees;

DISTINCT를 생략하면 이 쿼리는 두 Smith 레코드를 모두 반환합니다.

SELECT 절에 두 개 이상의 필드가 포함된 경우 모든 필드의 값 조합은 특정 레코드가 결과에 포함될 때 고유해야 합니다.

DISTINCT를 사용하는 쿼리의 출력은 업데이트할 수 없습니다. 다른 사용자가 변경한 후속 변경 내용을 반영하지 않습니다.

DISTINCTROW

중복 필드가 아닌 전체 중복 레코드를 기반으로 데이터를 생략합니다. 예를 들어 CustomerID 필드에서 고객 및 주문 테이블에 조인하는 쿼리를 만들 수 있습니다. 고객 테이블에는 중복 CustomerID 필드가 없지만 주문 테이블은 각 고객이 많은 주문을 사용할 수 있기 때문에 이 작업을 합니다. 다음 SQL 문은 DISTINCTROW를 사용하여 주문에 대한 세부 정보 없이 하나 이상의 주문이 있는 회사 목록을 생성하는 방법을 보여 주며,

SELECT DISTINCTROW CompanyName
FROM Customers INNER JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
ORDER BY CompanyName;

DISTINCTROW를 생략하면 이 쿼리는 두 개 이상의 주문이 있는 각 회사에 대해 여러 행을 생성합니다.

DISTINCTROW는 쿼리에 사용되는 테이블 중 일부에서 필드를 선택할 때만 효과가 있습니다. 쿼리에 하나의 테이블만 포함하거나 모든 테이블에서 필드를 출력하는 경우 DISTINCTROW가 무시됩니다.

TOP n [PERCENT]

ORDER BY 절에서 지정한 범위의 위쪽 또는 아래쪽에 있는 특정 수의 레코드를 반환합니다. 1994년 수업에서 상위 25명 학생의 이름을 원할 경우:

SELECT TOP 25
FirstName, LastName
FROM Students
WHERE GraduationYear = 2003
ORDER BY GradePointAverage DESC;

ORDER BY 절을 포함하지 않는 경우 쿼리는 WHERE 절을 충족하는 학생 테이블에서 임의의 25개 레코드 집합을 반환합니다.

TOP 프레지트는 같은 값 사이에서 선택되지 않습니다. 앞의 예제에서 25번째 및 26번째 가장 높은 등급 포인트 평균이 같을 경우 쿼리는 26개의 레코드를 반환합니다.

PERCENT 예약 단어를 사용하여 ORDER BY 절에서 지정한 범위의 위쪽 또는 아래쪽에 있는 특정 백분율의 레코드를 반환할 수도 있습니다. 상위 25명 학생 대신 수업의 아래쪽 10%를 원할 수 있습니다.

SELECT TOP 10 PERCENT
FirstName, LastName
FROM Students
WHERE GraduationYear = 2003
ORDER BY GradePointAverage ASC;

ASC 약어는 아래쪽 값의 반환을 지정합니다. TOP을 따르는 값은 부호 없는 정수가 되어야 합니다.

TOP은 쿼리를 업데이트할 수 있는지 여부에 영향을 주지 않습니다.

table

레코드를 검색할 테이블의 이름입니다.



추가 도움이 필요하신가요?

Office 기술 확장
교육 살펴보기
새로운 기능 우선 가져오기
Office Insider 참여

이 정보가 유용한가요?

의견 주셔서 감사합니다!

피드백을 주셔서 감사합니다. Office 지원 에이전트와 연락하는 것이 도움이 될 것 같습니다.

×