Использование SQL для фильтрации указанного значения c и удаления повторяющейся строки - PullRequest
0 голосов
/ 13 февраля 2020

Допустим, у меня есть таблица с именем 'ABC' в базе данных доступа со следующими настройками:

Des Date Mid ... ISIN order 
 A.  B.   C. ...  D.    E
 F.  G.   H  ...  I.    J
 K.  L.      ...  N.    O
 P.  Q.      ...  S.    O
 L.  I.   U. ...  I.    P 

Мне нужно сначала выбрать все пустые ячейки из столбца 'Mid', а затем удалить дублированные строки, если значения столбца 'order' дублированы, оставьте только одну запись, так что все пустые из столбца 'Mid' не будут иметь дублированного значения в столбце 'order'

*, ни первичный ключ, ни уникальный идентификатор в моем таблица

Результат, который я хочу:

 Des Date Mid ... ISIN order 
 A.  B.   C. ...  D.    E
 F.  G.   H  ...    I.    J
 K.  L.      ...    N.   O 
 L.  I.   U. ...     I.    P 

Теперь, когда в столбце 'Mid' выбраны пустые ячейки, больше нет повторяющегося значения в столбце 'order'

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

1 Ответ

0 голосов
/ 13 февраля 2020

Предполагая, что один или несколько столбцов являются первичными ключами, вы можете использовать:

delete from t
   where t.Mid = "" and
         t.des > (select min(t2.des)
                  from t as t2
                  where t2.Mid = t.Mid and
                        t2.Order = t.Order
                 );

Это произвольно предполагает, что des является первичным ключом.

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