A 테이블
Team
롯데
해태
삼성
LG
KT
이 들어 있습니다.
쿼리문으로
Select * from A테이블 where Team in ('해태', 'NC', '삼성', '삼미' )
--- 쿼리는 틀린겁니다. 어떻게 쿼리문을 작성을 하면
했을 경우
'NC', '삼미' 를 뽑을 수 있을까요?
제가 어떤 팀이름 을 넣었을때 A테이블에 없는 팀만 결과 값으로... 받을 수 있도록
즉 팀명을 넣어서 없는 것들만 찾고 싶습니다.
Comment 6
-
처리짱
2013.11.22 20:33
-
taz2315
2013.11.22 20:55
아니요.
Not in 은 조건절에 있는것 중에 테이블에 없는 걸 뽑는거쟎아요...
전 조건에 있는것중 테이블에 없는걸 뽑고 싶습니다 -
처리짱
2013.11.22 21:00
조건에는 있는데 테이블에 없으려면... 음...
테이블에 데이터가 없는데 뭘 뽑으시려는건가요??
제가 이해력이 부족했다면 죄송요 ㅠㅠ
-
taz2315
2013.11.22 21:18
테이블에 없는것들을 찾아서 넣으려고 합니다.
프로야구구단이란 테이블이 있다고 할 때
롯데
삼성
엘지
가 들어있을때
기아 롯데 삼성 엘지 넥센 두산 ... 등 전체 구단을 입력을 하면 기존에 있는값을 제외하고 나머지를 넣으려고합니다.
그런데 사전에 이 팀들이 등록이 안되어 있습니다 라고 보여 주려고 합니다. -
건우아빠
2013.11.22 22:29
단순히 쿼리로만은 힘듭니다.
프로시저를 이용하시던가 하셔야 합니다...
아규먼트를 변수화 하신 다음 그 변수를 테이블화(테이블함수포함) 하셔서 비교하셔야 가능 할듯 합니다.
http://www.sqler.com/140487 에서 민석님 답글 이용..
declare @argument varchar(max)
set @argument = '해태,NC,삼성,삼미';
WITH ARGUMENT AS
(
SELECT SUBSTRING(A.VALS,B.S,B.E-B.S) Team
FROM (SELECT @argument VALS ) A
CROSS APPLY (
SELECT TOP (2047) NUMBER S
, CHARINDEX(',',A.VALS+',',NUMBER + 1) E
FROM MASTER.DBO.SPT_VALUES
WHERE NUMBER = CHARINDEX (',',','+A.VALS,NUMBER)
AND TYPE ='P'
ORDER BY NUMBER) B
) ,
A_t as
(
select '롯데' Team union all
select '해태' union all
select '삼성' union all
select 'LG' union all
select 'KT' )select *
from ARGUMENT
where Team not in (SELECT Team FROM A_t )
-
History
2013.11.26 09:31
값들을 임시테이블에 넣은뒤에 실제 테이블과 Outer Join 을 걸어서 판단하는 방법도 있습니다. ㅎㅎ
NOT IN 을 말씀하시는 걸까요?