Как сравнить 2 строки из одной таблицы (Oracle 11g) - PullRequest
0 голосов
/ 20 января 2012

Мне нужно создать хранимую процедуру, которая обрабатывает таблицу, ища строки, соответствующие определенному идентификатору с разными статусами.
Я знаю синтаксис для получения данных строк, но я никогда не пытался сравнить 2 строки из одной таблицыдо?Как это сделать?Нужно ли использовать переменные для хранения данных от каждого?Или каким-то другим способом?

Этот вопрос основан на этом одном , но на Oracle с некоторыми модификациями:

Первый - эта таблица может иметь или не иметь многомногие, многие к одному, отношения один ко многим с другими таблицами.

Редактировать 1:

Таблица выглядит следующим образом:
create table Test(<br> id char32 not null,<br> column1 varchar2(2048),<br> column2 varchar2(2048),<br> ...<br> column30 varchar2(2048) )

Любая разница в любом столбце приведет к тому, что они будут другими.Хранимая процедура будет возвращать только истину или ложь относительно того, идентичны они или нет.

1 Ответ

2 голосов
/ 21 января 2012

следующая форма выбора будет проверять наличие дубликатов:

select id ,
column1 ,
column2 ,
...
column30 ,
count(*)
from test
group by id ,
column1 ,
column2 ,
...
column30
having count(*) > 1
;

Вы также можете самостоятельно присоединиться к тестовой таблице или использовать MINUS

...