werte mehrerer spalten um 1 hochzählen

Hallo an alle,

gibt es eine Möglichkeit, eine bestimmte Spalte einer gewissen Menge an Datensätzen mit einem SQL-Statement um eins hochzuzählen?

z.B.:
Wähle alle Datensätze aus, deren Spalteneintrag “SpalteX” größer als 5 ist, und erhöhe die jeweiligen “SpalteX”-Einträge um eins

Danke, Wuchermann



test=# create table wuchermann (i int);
CREATE TABLE
test=*# copy wuchermann from stdin;
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself.
>> 1
>> 2
>> 3
>> 4
>> 5
>> 6
>> 7
>> 8
>> 9
>> \.
test=*# UPDATE wuchermann set i=i+1 where i > 5;
UPDATE 4
test=*# select * from wuchermann order by i;
 i
----
  1
  2
  3
  4
  5
  7
  8
  9
 10
(9 rows)

Andreas

Was hindert dich denn daran, die Spalte um eins zu erhoehren?

Update tabelle set spalte = spalte + 1 where spalte > 512334

.oO( vermutlich ein unique index )

Andreas

Oh mann, da stand ich aber mal richtig auf’m schlauch.
Ich dachte das wär enormst Kompliziert, so mit verschachtelten Unterabfragen …

Es ist halt noch früh :slight_smile:

Danke für Eure Hilfe
Wuchermann