SQL-запрос для выбора изменений между 2 связанными столбцами в одной таблице - PullRequest
0 голосов
/ 29 октября 2019

Есть ли запрос, который может выбрать строки, в которых произошли изменения между двумя связанными столбцами, которые содержат разные значения?

Для иллюстрации:

У меня есть ОДНА таблица, где есть буквенно-цифровой коди еще один столбец для хранения его зашифрованного эквивалента.

Мне нужно найти строки, в которых эти 2 не совпадают. Поэтому, если у меня есть следующая таблица «коды»

code | encryption
A1   | jl2
A1   | jl2
A1   | ki4
B2   | jl2

, я хочу, чтобы запрос выбрал строки, в которых A1 привело к ki4, а B2 привело к jl2, потому что эти 2 не соответствовали их обычным результатам (A1всегда должно быть jl2 и наоборот)

Коды, конечно, всего лишь примеры, поэтому я не могу просто написать запрос, который ищет именно эти экземпляры.

Ответы [ 2 ]

0 голосов
/ 30 октября 2019

Для тех, кто заинтересован в ответе, я думаю, что на самом деле это сделано. В основном, сравните таблицу с собой один раз, а затем выберите случаи, когда другой столбец не соответствует

select a.code,a.encryption,b.encryption
from codes a, codes b
where a.code = b.code
and a.encryption <> b.encryption
0 голосов
/ 29 октября 2019

Вы можете использовать not exists, чтобы получить список строк, у которых нет совпадений:

select distinct code, encryption
from t
where not exists (select 1
                  from t t2
                  where t2.code = t.code and
                        t2.encryption <> t.encryption
                 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...