더 이해하기 쉽도록 설명을 수정하고 있습니다. 값이 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
더 이해하기 쉽도록 설명을 수정하고 있습니다. 값이 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
DELETE FROM table where value <> 'z2';
편집이다 : 당신이 당신의 질문을 명확히 이후에 그냥 쿼리를 간단하게 유도 할 수있는 값으로 z2
이없는 ID를 선택하고 싶었. 모든 ID를 선택하고 EXCEPT
을 사용하여 z2
값을 제거하십시오.
SELECT id FROM mytable
EXCEPT
SELECT id FROM mytable WHERE value='z2';
당신은 방금 = Z2를 값이없는 모든 ID를 선택합니다 귀하의 질문에 말했다
(난 당신이 쿼리에서 소문자 구분을 원하는 있으리라 믿고있어). 그렇다면 왜 DELETE
검색어를 원하십니까? 다음과 같은 간단한 SELECT
쿼리는 당신에게 예상되는 출력을 제공하도록되어 :
SELECT ID
FROM Table
WHERE Value NOT IN ('Z2')
, 당신은 내가 SQL 절 사용하고 있음을 볼 수있다 - (특정 열에서 특정 값을 제외 할, NOT IN
을의) 테이블에서 검색하는 동안. 해당 ID를 보려면 DELETE
쿼리가 필요하지 않습니다.
더 나은 이해를 위해 다음 링크를 참조하십시오. SQL: NOT Condition
실제 문제는 무엇입니까? – Sadikhasan
그룹 3에 존재할 수있는 다른 값을 삭제해야하는지 명확히해야합니다 (예 : 행 단위로 작업 하시겠습니까, 그룹 단위로 그룹화 하시겠습니까?) –
안녕하세요, 요아킴, 그룹별로 노력하고 있습니다. Z2가없는 그룹을 선택하고 싶다. – Neelu