Обновить значения из базы данных - PullRequest
0 голосов
/ 24 марта 2020

У меня есть таблица с именем employees со столбцами:

  • id
  • departament_id
  • зарплата

и я хотите повысить зарплату на 10% для сотрудников, работающих в том же отделе, что и сотрудник с id=115, как мне это сделать?

1 Ответ

0 голосов
/ 25 марта 2020

Вот один из вариантов:

Сначала образец данных (на основе таблицы EMP Скотта):

SQL> create table test as select deptno, empno id, ename, sal from emp;

Table created.

SQL> select * From test where deptno = 10;

    DEPTNO         ID ENAME             SAL
---------- ---------- ---------- ----------
        10       7782 CLARK            2450
        10       7839 KING            10000
        10       7934 MILLER           1300

SQL>

Давайте изменим зарплату для всех сотрудников отдела 10 - я передам идентификатор Кларка как параметр:

SQL> merge into test t
  2    using (select a.deptno
  3           from test a
  4           where a.id = &par_id
  5          ) x
  6    on (x.deptno = t.deptno)
  7    when matched then update set
  8      t.sal = t.sal * 1.1;
Enter value for par_id: 7782

3 rows merged.

Результат:

SQL> select * From test where deptno = 10;

    DEPTNO         ID ENAME             SAL
---------- ---------- ---------- ----------
        10       7782 CLARK            2695
        10       7839 KING            11000
        10       7934 MILLER           1430

SQL>

Теперь, когда вы знаете как , примените его к своей таблице.

...