Как определить, какие столбцы имеют другое значение в SQL Server - PullRequest
0 голосов
/ 09 мая 2019

У меня есть таблица, которая содержит более 100 столбцов, в обычном случае contract_id должен быть уникальным в этой таблице, но иногда встречаются дублирующие значения.Я использую этот оператор SQL для извлечения данных из этой таблицы:

select distinct contract_id, col1, col2,...colM 
from the_table;

, но я нашел contract_id значений, я знаю, что в одном и том же столбце должны быть разные значения, могу ли я иметьспособ узнать все эти столбцы, которые имеют различное значение, приводит к тому, что я видел дубликат contract_id, хотя я использую разные, потому что есть много полей, и только несколько столбцов имеют разные значения.Трудно сравнить каждый столбец один за другим вручную.

1 Ответ

0 голосов
/ 09 мая 2019

Попробуйте что-нибудь вместе

SELECT contract_id 
FROM the_table 
GROUP BY contract_id 
HAVING COUNT(contract_id)>1;

или

WITH NumberedRows AS
(
 SELECT ROW_NUMBER() OVER(PARTITION BY contract_id ORDER BY(SELECT NULL)) AS RowNumber
       ,*
 FROM the_table
)
SELECT * 
FROM NumberedRows
WHERE RowNumber>1;

Первое покажет вам все значения contract_id, которые встречаются как минимум дважды, второе покажет вам всестроки, которыми вы можете манипулировать (удалить / изменить).

внимание : я использовал SELECT NULL в ORDER BY предложения OVER().Здесь очень важно использовать подходящий пример ORDER BY.Это будет отвечать за Какая строка получает номер 1, а какая строка получает возрастающее число и будет отображаться в результате из-за >1?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...