【发布时间】:2020-04-17 09:47:51
【问题描述】:
Select * from testtable;
当我们只考虑 4 列时,您可以看到有重复的行。 我们是否可以简单地将其设为一行并将两个属性值(移动编号和值(仅限 OM 或 OD))拆分为两个单独的列,以便像下面那样删除重复项?
create table testtable
(
ACCOUNT_NUM VARCHAR2(30),
OTC_ID NUMBER(9),
OTC_SEQ NUMBER(9),
OTC_MNY NUMBER(9),
ATTRIBUTE_VALUE VARCHAR2(30)
);
insert into TESTTABLE (ACCOUNT_NUM, OTC_ID, OTC_SEQ, OTC_MNY, ATTRIBUTE_VALUE)
values ('0000000191', 381, 1, 1000, 'OM');
insert into TESTTABLE (ACCOUNT_NUM, OTC_ID, OTC_SEQ, OTC_MNY, ATTRIBUTE_VALUE)
values ('0000000191', 381, 1, 1000, '07400004483');
insert into TESTTABLE (ACCOUNT_NUM, OTC_ID, OTC_SEQ, OTC_MNY, ATTRIBUTE_VALUE)
values ('0000000191', 382, 2, 1000, 'OD');
insert into TESTTABLE (ACCOUNT_NUM, OTC_ID, OTC_SEQ, OTC_MNY, ATTRIBUTE_VALUE)
values ('0000000191', 382, 2, 1000, '07400004483');
insert into TESTTABLE (ACCOUNT_NUM, OTC_ID, OTC_SEQ, OTC_MNY, ATTRIBUTE_VALUE)
values ('0000000191', 397, 3, 3000, 'OD');
insert into TESTTABLE (ACCOUNT_NUM, OTC_ID, OTC_SEQ, OTC_MNY, ATTRIBUTE_VALUE)
values ('0000000191', 397, 3, 3000, '07800000688');
【问题讨论】: