1

Temat: Komenda UPDATE i ROW_NUMBER()

Posiadam nastepujace pytanie do bazy:
SELECT * FROM (SELECT *, ROW_NUMBER() OVER (ORDER BY "kol" DESC) AS rownum FROM "test") AS foo
WHERE
rownum = 5,
Chce zmienic wartosc w wierszu o numerze 5 posortowanym według "kol", a dokladnie w jednej komórce znajdującej się w kolumnie "kol".
Próbowałem tak:

UPDATE test SET kol = 'jakis_tekst' FROM
(SELECT * FROM (SELECT *, ROW_NUMBER() OVER (ORDER BY "kol" DESC) AS rownum FROM "test") AS foo
WHERE
rownum = 5 ) AS foo2

Niestety zmienia to wszystkie wiersze w kolumnie, może ktoś wie jak rozwiązać mój problem?

2

Odp: Komenda UPDATE i ROW_NUMBER()

UPDATE test SET kol = 'jakis_tekst' FROM
(SELECT * FROM (SELECT *, ROW_NUMBER() OVER (ORDER BY "kol" DESC) AS rownum FROM "test") AS foo
WHERE
rownum = 5 ) AS foo2
where test.id=foo2.id

Założyłem ze w tabeli "test" istnieje primary key i jest to kolumna id

3

Odp: Komenda UPDATE i ROW_NUMBER()

Chciałbym właśnie nie zakładać co jest kluczem głównym i jaka jest nazwa kolumny z kluczem głównym, dlatego stworzyłem dodatkową kolumnę w pytaniu i to na podstawie jej wartości chciałbym modyfikować wiersze.

Czy to wykonalne?

4

Odp: Komenda UPDATE i ROW_NUMBER()

Ostatnio edytowany przez c_michal (2013-07-12 12:41:00)

5

Odp: Komenda UPDATE i ROW_NUMBER()

Wielkie dzięki!

To rozwiązało mój problem smile