Отображение столбцов в oracle - sql - PullRequest
0 голосов
/ 29 апреля 2020

Таблица:

column 1           column 2           column 3
2                  two                3
5                  five               8
3                  three              10
8                  eight              11
12                 one                15

Я хочу создать новый столбец column 4, как показано ниже:

 column 1           column 2           column 3       column 4
2                  two                3               three
5                  five               8               eight
3                  three              10              
8                  eight              11
12                 one                15

Я хочу отобразить column 3 и column 1, и если есть совпадение column 4 принимает значения column 2.

Пример: значение 3 в column 3 присутствует в column 1, поэтому column 4 будет принимать соответствующее column 3 значение three.

Спасибо!

1 Ответ

0 голосов
/ 29 апреля 2020

Это выглядит как left join:

select t.*, tt.column2 as column4
from table1 t left join
     table1 tt
     on t.column3 = tt.column1;

РЕДАКТИРОВАТЬ:

Если вы хотите установить значение, вы можете использовать update:

update table1 t
    set column4 = (select tt.column2 from table1 tt where t.column3 = tt.column1)
    where exists (select 1 from table1 tt where t.column3 = tt.column1);

Однако это кажется глупым. Вы можете легко получить значение в таблице, используя явный join или скрыв логики c в представлении.

...