Microsoft로 로그인
로그인하거나 계정을 만듭니다.
안녕하세요.
다른 계정을 선택합니다.
계정이 여러 개 있음
로그인할 계정을 선택합니다.
ALL, DISTINCT, DISTINCTROW, TOP 조건자

SQL 쿼리를 사용하여 선택한 레코드를 지정합니다.

구문

SELECT [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 문은 Smith를 포함하는 레코드를 하나만 반환합니다.

SELECT DISTINCT LastName
FROM Employees;

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

SELECT 절에 둘 이상의 필드가 포함된 경우 지정된 레코드가 결과에 포함되려면 모든 필드의 값 조합이 고유해야 합니다.

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

DISTINCTROW

중복 필드뿐만 아니라 전체 중복 레코드를 기반으로 데이터를 생략합니다. 예를 들어 CustomerID 필드에 고객 및 주문 테이블을 조인하는 쿼리를 만들 수 있습니다. Customers 테이블에는 중복된 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 절을 충족하는 Students 테이블에서 임의의 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

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



도움이 더 필요하세요?

더 많은 옵션을 원하세요?

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다.

커뮤니티를 통해 질문하고 답변하고, 피드백을 제공하고, 풍부한 지식을 갖춘 전문가의 의견을 들을 수 있습니다.

이 정보가 유용한가요?

언어 품질에 얼마나 만족하시나요?
사용 경험에 어떠한 영향을 주었나요?
제출을 누르면 피드백이 Microsoft 제품과 서비스를 개선하는 데 사용됩니다. IT 관리자는 이 데이터를 수집할 수 있습니다. 개인정보처리방침

의견 주셔서 감사합니다!

×