Select Unique와 Select Distinct의 차이점
나는 이것이 동의어라고 생각했지만 Microsoft SQL로 다음을 썼습니다.
Select Unique col from
(select col from table1 union select col from table2) alias
그리고 실패했습니다. 로 변경
Select Distinct col from
(select col from table1 union select col from table2) alias
고쳤다. 누군가 설명 할 수 있습니까?
SELECT UNIQUE
오라클의 SQL 풍미가 지원하는 오래된 구문입니다. 와 동의어입니다 SELECT DISTINCT
.
사용 SELECT DISTINCT
이 표준 SQL이며, 때문에 SELECT UNIQUE
비표준이며, 데이터베이스, 오라클 이외의 브랜드 SELECT UNIQUE
전혀 인식되지 않을 수 있습니다.
Unique는 Create Table () 지시문에서 사용되는 키워드로, 필드에 일반적으로 자연 키, 외래 키 등에 사용되는 고유 데이터가 포함됨을 나타냅니다.
예를 들면 다음과 같습니다.
Create Table Employee(
Emp_PKey Int Identity(1, 1) Constraint PK_Employee_Emp_PKey Primary Key,
Emp_SSN Numeric Not Null Unique,
Emp_FName varchar(16),
Emp_LName varchar(16)
)
즉, 누군가의 사회 보장 번호는 귀하의 테이블에서 고유 한 필드 일 수 있지만 반드시 기본 키는 아닙니다.
필드에 고유하지 않을 수있는 데이터가있을 때 고유 항목 만 반환되도록 쿼리에 알리기 위해 Select 문에서 Distinct가 사용됩니다.
Select Distinct Emp_LName
From Employee
성은 같은 직원이 많을 수 있지만 서로 다른 성만 원합니다.
쿼리하는 필드에 고유 한 데이터가있는 경우 분명히 Distinct 키워드가 불필요 해집니다.
select unique는 수행하려는 작업에 유효한 구문이 아닙니다.
Select distinct 또는 select distinctrow를 사용하려고합니다.
그리고 실제로, 당신이하려는 일에 별개 / 구별이 필요하지 않습니다. 적절한 Union 문 매개 변수를 선택하여 중복을 제거 할 수 있습니다.
아래 쿼리 자체는 고유 한 값만 제공합니다.
select col from table1
union
select col from table2
당신이 중복을 원한다면 당신은해야 할 것
select col from table1
union all
select col from table2
오라클에서만 =>
SELECT DISTINCT
와 SELECT UNIQUE
같은 방식으로 작동합니다. DISTINCT는 ANSI SQL 표준이지만 UNIQUE는 Oracle 고유의 명령문입니다.
다른 데이터베이스 (예 : sql-server와 같은) =>
SELECT UNIQUE
잘못된 구문입니다. UNIQUE
열에 고유 제한 조건을 추가하기위한 키워드입니다.
- 고유 구문은 이전 구문이고 Distinct 는 새로운 구문이며 이제는 표준 SQL입니다.
- Unique 는 삽입 할 모든 값이 다른 값과 달라야한다는 제약 조건을 만듭니다. 중복 값을 입력하려고하면 오류가 발생할 수 있습니다. 구별 하면 데이터를 검색하는 동안 중복 행이 제거됩니다.
예 : SELECT DISTINCT 이름 FROM student;
CREATE TABLE Persons (id varchar NOT NULL UNIQUE , 이름 varchar (20));
참고 URL : https://stackoverflow.com/questions/336268/difference-between-select-unique-and-select-distinct
'Programing' 카테고리의 다른 글
Swift에서 네임 스페이스를 사용하는 방법은 무엇입니까? (0) | 2020.06.23 |
---|---|
추상 클래스 테스트 (0) | 2020.06.23 |
jQuery Post를 Google API로 보내는 Access-Control-Allow-Origin 오류 (0) | 2020.06.23 |
'명명 된 파이프 공급자, 오류 40-SQL Server에 대한 연결을 열 수 없습니다'오류를 어떻게 수정합니까? (0) | 2020.06.23 |
Mailto 링크는 Chrome에서 아무것도하지 않지만 Firefox에서는 작동합니까? (0) | 2020.06.23 |