SQL/Sqlite

SQLite 9. UNION

컴닥 2022. 1. 1. 12:20
반응형

SELECT와 SELECT사이에 UNION만 넣으면 끝...

OR을 

SELECT * 
FROM players
WHERE height > 80 OR age > 40

이렇게 바꿔 쓸 수도 있다. 

SELECT * 
FROM players
WHERE height > 80
UNION 
SELECT * 
FROM players
WHERE age > 40

20행이 반환되었다. 

 

UNION ALL을 쓰면 중복행도 반환된다. 

SELECT * 
FROM players
WHERE height > 80
UNION ALL
SELECT * 
FROM players
WHERE age > 40

21행 반환.. 

 

컬럼의 개수가 다르면 합쳐지지 않는다. 

에러가 발생하여 실행 중단됨.
결과: SELECTs to the left and right of UNION do not have the same number of result columns
1번째 줄:
SELECT * 
FROM players
WHERE height > 80
UNION 
SELECT * 
FROM weights
WHERE weight > 250

이건 가능.
컬럼의 개수가 같고,
형변환이 가능해야 UNION이 가능한데,
SQLite는 타입이 아주 약한 DB니까 가능.

SELECT id, name 
FROM players
WHERE height > 80
UNION 
SELECT id, weight
FROM weights
WHERE weight > 250

반응형