как реализовать на sql конструкцию?

1vadik1
Дата: 24.09.2004 12:24:15
усли строки с ID не существует то (insert....)
а если существует то (update....)
GEORG11
Дата: 24.09.2004 12:28:49
begin
select * into skks from <table> where id=;
update
exception when no_data_found then
insert;
end;
Andrey_K
Дата: 24.09.2004 12:32:58
rtfm merge ...
azhukov
Дата: 24.09.2004 12:33:01
MERGE INTO bonuses D
USING (SELECT employee_id, salary, department_id FROM employees
WHERE department_id = 80) S
ON (D.employee_id = S.employee_id)
WHEN MATCHED THEN UPDATE SET D.bonus = D.bonus + S.salary*.01
WHEN NOT MATCHED THEN INSERT (D.employee_id, D.bonus)
VALUES (S.employee_id, S.salary*0.1);
а подробнее
http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96540/statements_915a.htm#2080942
1vadik1
Дата: 24.09.2004 13:57:20
хм, так он апдейтит мне все записи в таблице, а надо одну, или проапдейтить или если такого ID нет, то добавить...

merge into uchastnik_oper c
using (select id_uchastnik from uchastnik_oper) r
on (r.id_uchastnik = 1507)
when matched then update set c.type_client=6, c.full_name='vasia', c.closed=0
when not matched then insert (c.type_client, c.id_uchastnik, c.full_name, c.closed)
values (6,1507,'vasia',0);