Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / update из набора данных / 6 сообщений из 6, страница 1 из 1
09.10.2019, 12:34
    #39873901
iv_roman_vl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
update из набора данных
Всем привет!

t1: c1 | c2 | c3
1 2 0
3 4 0
5 6 0

t2: c1 | c2
1 2
5 6

Обновить столбец с3(установить еденицу например), где значения столбцов с1 И с2 таблиц совпадают.

Должно получится:
t1: c1 | c2 | c3
1 2 1
3 4 0
5 6 1
...
Рейтинг: 0 / 0
09.10.2019, 12:38
    #39873907
iv_roman_vl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
update из набора данных
iv_roman_vl,

Пример таблиц
...
Рейтинг: 0 / 0
09.10.2019, 12:45
    #39873914
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
update из набора данных
Чти доку на предмет MERGE.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
09.10.2019, 12:52
    #39873922
iv_roman_vl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
update из набора данных
Dimitry Sibiryakov,

Спасибо, совсем забыл про этот оператор!
...
Рейтинг: 0 / 0
09.10.2019, 12:58
    #39873929
Anton_Demin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
update из набора данных
iv_roman_vl,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
create table tst1 (c1 number,c2 number,c3 number);
create table tst2 (c1 number,c2 number);
insert into tst1 values (1,2,null);
insert into tst1 values (3,4,null);
insert into tst1 values (5,6,null);
insert into tst1 values (7,8,null);
insert into tst2 values (1,2);
insert into tst2 values (5,6);
commit;
-------
update tst1 t
   set t.c3 = 1
 where exists (select 1
          from tst2 t2
         where t2.c1 = t.c1
           and t2.c2 = t.c2);
commit;
select * from tst1;
--------
update tst1 t
   set t.c3 = 2
 where (t.c1, t.c2) in (select t2.c1, t2.c2 from tst2 t2);
commit;
select * from tst1;
...
Рейтинг: 0 / 0
09.10.2019, 13:14
    #39873944
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
update из набора данных
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
select * from dropme_tst1
;
        C1         C2         C3
---------- ---------- ----------
         1          2 
         3          4 
         5          6 
         7          8 


update(
  select t1.*
    from dropme_tst1 t1
       , dropme_tst2 t2
   where (t1.c1, t1.c2) = ((t2.c1, t2.c2))
) set c3=1
;
2 rows updated

select * from dropme_tst1
;
        C1         C2         C3
---------- ---------- ----------
         1          2          1
         3          4 
         5          6          1
         7          8 

SQL> 
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / update из набора данных / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]