두개의 테이블을 full outer join 을 해서 비교를 하는데요.
A Table | B Table |
a | a |
b | b |
c | NULL |
d | d |
e | e |
NULL | f |
NULL | g |
결과값이 위 처럼 나옵니다.
그런데 결과 값을
A Table | B Table |
a | a |
b | b |
d | d |
e | e |
c | NULL |
NULL | f |
NULL | g |
이렇게 나오게 하려면 쿼리를 어떻게 해야 할까요?
A든 B 든 NULL 인 것들을 아래로 깔고 싶은데요.
order by 를 어떻게 해야지 NULL인것들이 모두 아래로 깔릴지 둘중하나가 NUL 이면 아래로...
Comment 2
-
DOOLLY
2016.03.22 11:52
-
자리비움
2016.03.23 15:20
create table #a ( col varchar(50) )
create table #b ( col varchar(50) )
insert into #a ( col ) values ('a'),('b'),('c'),('d'),('e')
insert into #b ( col ) values ('a'),('b'),('d'),('e'),('f'),('g')
select *
from (
select seq = ( case when ( a.col is null or b.col is null ) then 0 else 1 end )
, a_col = a.col
, b_col = b.col
from #a as a
full outer join #b as b on b.col = a.col
) as x
order by x.seq desc
order by CASE WHEN A.modelno IS NULL THEN 0 ELSE 1 END * CASE WHEN B.modelno IS NULL THEN 0 ELSE 1 END
이렇게 했는데.. 맞는지.. 모르겠네요.