Соединить две таблицы и вернуть первую запись второй таблицы - иметь этот код.Один из столбцов во второй таблице может иметь одинаковые значения.Если это так, верните значение;в противном случае возвращаемое значение null.
используется отдельно, но все равно необходимо вернуть первую запись, даже если значение столбца не отличается (т. е. возвращено значение NULL)
CREATE TABLE Person ("LAST_NAME" VARCHAR2(50 BYTE),
"TICKET_NUMBER" VARCHAR2(50 BYTE));
BEGIN
insert into Person(last_name,ticket_number) values('johnson','100');
insert into Person(last_name,ticket_number) values('smith','200');
END;
/
CREATE TABLE Orders
("REGION" VARCHAR2(50 BYTE),
"STATE" VARCHAR2(50 BYTE),
"A_CODE" VARCHAR2(5 BYTE),
"STORE_NUM" VARCHAR2(50 BYTE),
"TICKET_NUMBER" VARCHAR2(50 BYTE),
"SEQ" NUMBER(12));
SELECT a.last_name,
a.ticket_number,
b.region,
b.state,
b.SEQ1,
B.A_CODE
FROM person a
BEGIN
insert into Orders(ticket_number, REGION, STATE, STORE_NUM, A_CODE, SEQ )
values('100', 'S', 'F1', '111', 'FLL', 1);
insert into Orders(ticket_number, REGION, STATE, STORE_NUM, A_CODE, SEQ )
values('100', 'S', 'F1', '222', 'FLL', 2);
insert into Orders(ticket_number, REGION, STATE, STORE_NUM, A_CODE, SEQ )
values('100', 'S', 'F1', '333', 'FLL', 3);
insert into Orders(ticket_number, REGION, STATE, STORE_NUM, A_CODE, SEQ )
values('100', 'S', 'F1', '444', 'FLL', 4);
END;
/
JOIN (SELECT ticket_number, MIN(SEQ) AS SEQ1,
MIN(region) AS region,
MIN(state) AS state, MIN(A_CODE) AS A_CODE
FROM orders WHERE REGION IS NOT NULL
GROUP BY ticket_number) b ON a.ticket_number = b.ticket_number where
a.last_name is not null;
Значения A_CODE одинаковы - возвращаемое значение
LAST_NAME TICKET_NUMBER REGION STATE SEQ1 A_CODE
johnson 100 S F1 1 FLL
Однако, если значения A_CODE не являются уникальными (т. Е. Не одинаковыми), то для столбца A_CODE возвращается значение null и по-прежнему возвращается первая запись второй таблицы.примечание: в качестве опции значение столбца не должно возвращать ноль, если оно не равно.Он может возвращать литерал типа «не равно»
LAST_NAME TICKET_NUMBER REGION STATE SEQ1 A_CODE
johnson 100 S F1 1 (NULL)
Oracle Database 12c Enterprise Edition, выпуск 12.2.0.1.0 - 64-разрядная версия