같은 테이블 값 비교 쿼리 질문드립니다. 0 6 4,379

by 많이부족합니다 [2018.06.29 11:30:16]


같은 테이블인데 서로의 값을 비교해서 같은건 배제하고 다른 데이터만 뽑고 싶은데 어떻게 해야 하는지요?
ex) 
select * from ex_table where c_data = '공책1'
111
222
333
444
555
666
select * from ex_table where c_data = '공책2'
111
222
333


예로 위의 결과로 같은값은 배제하고 다른값은 
공책1의 444,555,666  이런결과값을 얻고 싶습니다.

쿼리를 어떻게 짜야 하나요?
부탁드립니다.ㅠ.ㅠ

by 몽키매직 [2018.06.29 11:37:09]

( select * from ex_table where c_data = '공책1' )

minus

( select * from ex_table where c_data = '공책2' )


by 많이부족합니다 [2018.06.29 13:13:49]

감사합니다.


by 신이만든지기 [2018.06.29 11:44:39]
with t as (
    select '공책1' c_data, '111' col from dual union all
    select '공책1' c_data, '222' col from dual union all
    select '공책1' c_data, '333' col from dual union all
    select '공책2' c_data, '111' col from dual union all
    select '공책2' c_data, '222' col from dual 
)
SELECT *
  FROM (SELECT C_DATA, COL, COUNT( COL ) OVER (PARTITION BY COL) CNT
          FROM T
         WHERE C_DATA IN ('공책1', '공책2'))
 WHERE CNT = 1

 


by 많이부족합니다 [2018.06.29 13:13:53]

감사합니다.


by 마농 [2018.06.29 13:12:43]
SELECT col
  FROM ex_table
 WHERE c_data IN ('공책1', '공책2')
 GROUP BY col
HAVING COUNT(*) = 1
;

 


by 많이부족합니다 [2018.06.29 13:13:58]

감사합니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입