본문 바로가기
Programming/DataBase

[Mssql] union과 union all의 사용법

by 막이 2012. 10. 8.

union all: 총집합, a에 있고 b에 있으면 둘 다 나오구요.

a ={a,b,c} / b={b,c,d} 라면

union 은 {a,b,c,d} 라고 나오구요

union all 은 {a,b,c,b,c,d} 일케 나오죠..^^

UNION은 인덱스가 적절히 잡혀 있고 한번에 큰 범위의 데이터를 가져오지 않는다면 무리가 있을 것으로 생각되지는 않습니다.

1. SELECT * FROM couple WHERE member1=$var OR member2=$var

2. (SELECT * FROM couple member1=$var) UNION (SELECT * FROM couple member2=$var)

1번 쿼리 = 2번 쿼리

=====================================================================================

union all 한 테이블 정열 방법

UNION , UNION ALL, INTERSECT,MINUS 등을 사용할땐 제약이 몇가지 따릅니다.
같은 수의 열을 선택해야 하고 대응하는 열끼리는 같은 타입이여야 합니다.

select number, id, content, regdate from tbsend
where number < 10
union all
select number, id, content, regdate from tbsend
where number > 30
order by regdate desc

위와 같이 단순히 ORDER BY 구문을 맨 아래에 하나만 추가해주시면 될듯 합니다.
SQL 1.0 규약에 있던 내용으로 기억합니다.
ORDER BY 구를 사용할땐 SELECT문 마다가 아니라 쿼리 전체의 마지막에 1번 사용 가능합니다.
열 명은 명칭을 사용하여 열의 순서를 지정할 수 없다.
대신 열의 순서는 SELECT문으로 지정한 열 리스트의 순서에 따라 지정할 수있다

'Programming > DataBase' 카테고리의 다른 글

[Mssql]Row_Number() OVER  (0) 2012.10.11
[mssql] TOP()  (0) 2012.10.08
[ORACLE] 이전글, 다음글 쿼리  (0) 2012.09.27
ORA-01747: 열명을 올바르게 지정해 주십시오  (0) 2012.09.26
ORA-00911: 문자가 부적합합니다  (0) 2012.09.25