Update Statement mit mehreren Bedingungen

Progi

Benutzer
Beiträge
8
Guten Abend

Ich hoffe das mir hier jemand helfen kann?

Ich habe ein zwei Update Statement die ich gerne in einem Befehl ausführen möchte:

UPDATE Name SET Vorname= 'Peter 1' where ID = 1
UPDATE Name SET Vorname= 'Paul 1' where ID = 2

Kann ich nun ein Update daraus machen auch wenn die Bedingung unterschiedlich sind?

Vielen dank für die Zeitnahe Hilfe.
 
Werbung:
Ja. Zumindest ich kann das:

Code:
test=*# create table foo (id int primary key, val text default 'leer');
CREATE TABLE
test=*# insert into foo (id ) select * from generate_series(1,10) s;
INSERT 0 10
test=*# select * from foo;
 id | val  
----+------
  1 | leer
  2 | leer
  3 | leer
  4 | leer
  5 | leer
  6 | leer
  7 | leer
  8 | leer
  9 | leer
 10 | leer
(10 rows)

test=*# with f1 as (update foo set val = '1' where id = 1), f3 as (update foo set val = '3' where id = 3), f7 as (update foo set val = '7' where id = 7) select 'success!';
 ?column?
----------
 success!
(1 row)

test=*# select * from foo;
 id | val  
----+------
  2 | leer
  4 | leer
  5 | leer
  6 | leer
  8 | leer
  9 | leer
 10 | leer
  7 | 7
  3 | 3
  1 | 1
(10 rows)

test=*#
 
Werbung:
Oder
Code:
UPDATE Name SET Vorname = (CASE WHEN ID = 1 THEN 'Peter 1' WHEN ID = 2 THEN 'Paul 1' ELSE Vorname END) WHERE ID IN ( 1,2 )
Die Frage ist eigentlich eher ob es mehr als die zwei Varianten werden.
 
Zurück
Oben