SQL Удалить строку, где существует значение, и последующий столбец, который имеет значение - PullRequest
1 голос
/ 08 апреля 2020

Я пытаюсь написать оператор SQL, который сначала получает только отдельные значения столбца 1, затем я хочу сравнить его с той же таблицей, но удалить все строки, имеющие значение в столбце 2

* 1002. *Screenshot

Например, значение 10142 в FieldID, когда я пишу выборку, не включающую 10142, удаляет только 1 строку, а также последующий столбец ID, чтобы не иметь строк.

Таким образом, на скриншоте я должен видеть все результаты только для идентификатора 634, поскольку 633 имеет значение FieldID 10142.

Сначала я попытался получить отдельное значение идентификатора во временной таблице, а затем выполнить фильтрацию. в другом выберите, где FieldID не был равен 10142, но все еще не видел правильный результат.

Это мой запрос:

SELECT DISTINCT id
INTO #TEMP
FROM tbl_WorkItemCustomLatest
ORDER BY ID ASC

SELECT a.*
FROM #TEMP
INNER JOIN dbo.tbl_WorkItemCustomLatest AS A ON #TEMP.id = A.id
WHERE A.FieldID != 10142
ORDER BY A.ID ASC

Любая помощь очень ценится.

1 Ответ

0 голосов
/ 08 апреля 2020

С NOT EXISTS:

select t.* from tbl_WorkItemCustomLatest t
where not exists (
  select 1 from tbl_WorkItemCustomLatest
  where id = t.id and FieldId = 10142
)

или с NOT IN:

select * from tbl_WorkItemCustomLatest 
where id not in (select id from tbl_WorkItemCustomLatest where FieldId = 10142)
...