SQL Server 의 집합 연산:UNION,EXCEPT,INTERSECT 예제 코드 상세 설명
UNION
(합병),EXCEPT
(차 집합)와INTERSECT
(교차)세 가 지 를 포함한다.집합 연산 의 기본 사용
1
UNION
(두 개의 검색 결과 집합 을 합 쳐 암시 적 DINSTINCT,중복 줄 삭제)
-- / (derived table), :[a,b,c,d,e]
SELECT FC FROM (VALUES('a'),('b'),('c'),('e')) Table1 (FC)
UNION
SELECT FC FROM (VALUES('a'),('b'),('c'),('d')) Table2 (FC)
2UNION ALL
(두 개의 조회 결과 집합 을 간단하게 합 쳐 중복 줄 을 삭제 하지 않 음)
-- / (derived table) , 、 ,
SELECT * FROM (VALUES('a','Anna'),('b','Bob'),('c','Cassie'),('e','Elina')) Table1 (FC, Name)
UNION ALL
SELECT * FROM (VALUES('a','Anna'),('b','Bob'),('c','Cassie'),('d','David')) Table2 (FC, Name)
3EXCEPT
(첫 번 째 결과 집에 나타 나 지만 두 번 째 결과 에 집 중 된 모든 줄 에 나타 나 지 않 음)
-- :[e]
SELECT FC FROM (VALUES('a'),('b'),('c'),('e')) Table1 (FC)
EXCEPT
SELECT FC FROM (VALUES('a'),('b'),('c'),('d')) Table2 (FC)
4INTERSECT
(첫 번 째 조회 결과 집 과 두 번 째 조회 결과 집 이 공유 하 는 부분 을 되 돌려 줍 니 다)
-- :[a,b,c]
SELECT FC FROM (VALUES('a'),('b'),('c'),('e')) Table1 (FC)
INTERSECT
SELECT FC FROM (VALUES('a'),('b'),('c'),('d')) Table2 (FC)
집합 연산 의 사용 장면1.사용
UNION
대체Where
자구 중의OR
조회 속도 가 빠르다.
-- Where + OR
SELECT name, population, area FROM world WHERE area > 3000000 OR population > 25000000
-- UNION
SELECT name, population, area FROM world WHERE area > 3000000
UNION
SELECT name, population, area FROM world WHERE population > 25000000
2.4.567914.와 4.567914 를 사용 하여 목록 에 존재 하지 않 거나 데이터베이스 에 존재 하 는 항목 을 걸 러 냅 니 다.가설 존재 표
EXCEPT
데 이 터 는 다음 표 와 같다.cust_id
cust_name
cust_address
cust_city
cust_state
cust_country
cust_contact
cust_email
1000000001
Village Toys
200 Maple Lane
Detroit
MI
USA
John Smith
[email protected]
1000000002
Kids Place
333 South Lake Drive
Columbus
OH
USA
Michelle Green
NULL
1000000003
Fun4All
1 Sunny Place
Muncie
IN
USA
Jim Jones
[email protected]
1000000004
Fun4All
829 Riverside Drive
Phoenix
AZ
USA
Denise L. Stephens
[email protected]
1000000005
The Toy Store
4545 53rd Street
Chicago
IL
USA
Kim Howard
NULL
--
-- ['1000000006','1000000007']
SELECT [Id] AS [cust_id] FROM
(
VALUES('1000000004'),('1000000005'),('1000000006'),('1000000007')
) dt ([Id])
EXCEPT
SELECT [cust_id] FROM [Customers]
--
-- ['1000000004','1000000005']
SELECT [Id] AS [cust_id] FROM
(
VALUES('1000000004'),('1000000005'),('1000000006'),('1000000007')
) dt ([Id])
INTERSECT
SELECT [cust_id] FROM [Customers]
-- SQLServer 2008
SELECT [Id] AS [cust_id] FROM
(
SELECT '1000000004' UNION ALL
SELECT '1000000005' UNION ALL
SELECT '1000000006' UNION ALL
SELECT '1000000007'
) dt ([Id])
INTERSECT
--EXCEPT
SELECT [cust_id] FROM [Customers]
// C# SQL
var list = new List<string>(){"1000000004","1000000005","1000000006","1000000007"};
string sqlQuery = string.Format($@"
SELECT [Id] AS [cust_id] FROM
(
VALUES('{string.Join("'),('", list)}')
) dt ([Id]
INTERSECT
--EXCEPT
SELECT [cust_id] FROM [Customers]"
);
더 많은 참고Set Operators - EXCEPT and INTERSECT
Set Operators - UNION
SQL Server 의 집합 연산:UNION,EXCEPT,INTERSECT 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 SQL Server 의 집합 연산 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 지원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Redash를 사용할 때 몰랐던 SQL을 쓰는 법을 배웠습니다.최근 redash에서 sql을 쓸 기회가 많고, 이런 쓰는 방법이 있었는지와 sql에 대해 공부를 다시하고 있기 때문에 배운 것을 여기에 씁니다. Redash란? 월별로 데이터를 표시하고 싶습니다 주별로 데이터를 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.