2014-09-16 11 views
-2

더 이해하기 쉽도록 설명을 수정하고 있습니다. 값이 Z2가 아닌 모든 ID를 선택하고 싶습니다. SQL Server 쿼리를 사용하여 어떻게 할 수 있습니까? 아래의 데이터 예를ID별로 그룹화하고 값을 삭제하십시오.

PK ID Value 

1 1 x1  
2 1 x2  
3 1 x3 
4 1 X4 
5 2 X1 
6 3 z2 
7 2 Z2 
8 4 X1 
9 4 X2 
+0

실제 문제는 무엇입니까? – Sadikhasan

+0

그룹 3에 존재할 수있는 다른 값을 삭제해야하는지 명확히해야합니다 (예 : 행 단위로 작업 하시겠습니까, 그룹 단위로 그룹화 하시겠습니까?) –

+0

안녕하세요, 요아킴, 그룹별로 노력하고 있습니다. Z2가없는 그룹을 선택하고 싶다. – Neelu

답변

0
DELETE FROM table where value <> 'z2'; 
2

편집이다 : 당신이 당신의 질문을 명확히 이후에 그냥 쿼리를 간단하게 유도 할 수있는 값으로 z2이없는 ID를 선택하고 싶었. 모든 ID를 선택하고 EXCEPT을 사용하여 z2 값을 제거하십시오.

SELECT id FROM mytable 
EXCEPT 
SELECT id FROM mytable WHERE value='z2'; 

An SQLfiddle to test with.

당신은 방금 = Z2를 값이없는 모든 ID를 선택합니다 귀하의 질문에 말했다

0

(난 당신이 쿼리에서 소문자 구분을 원하는 있으리라 믿고있어). 그렇다면 왜 DELETE 검색어를 원하십니까? 다음과 같은 간단한 SELECT 쿼리는 당신에게 예상되는 출력을 제공하도록되어 :

쿼리에서
SELECT ID 
FROM Table 
WHERE Value NOT IN ('Z2') 

, 당신은 내가 SQL 절 사용하고 있음을 볼 수있다 - (특정 열에서 특정 값을 제외 할, NOT IN을의) 테이블에서 검색하는 동안. 해당 ID를 보려면 DELETE 쿼리가 필요하지 않습니다.

더 나은 이해를 위해 다음 링크를 참조하십시오. SQL: NOT Condition

관련 문제