Re: psql: höchster Wert auf True
- From: Andreas Kretschmer <akretschmer@xxxxxxxxxxxxx>
- Date: Thu, 1 Dec 2005 18:23:57 +0100
begin Daniel Seichter <nospam@xxxxxxxxxxxxxx> wrote:
> Hallo,
> in einer Tabelle gibt es 2000 Datensätze. Der Aufbau dieser Werte ist, dass
> die letzte Stelle 0-Z immer eine Version angibt. Nun möchte ich gerne eine
> Funktion schreiben, die mir folgendes ermöglicht:
> Die ersten 7 Stellen gehören zusammen. Vergleiche nun alle Datensätze nach
> diesem Muster und setze das Feld gueltig bei dem Datensatz auf true, wenn
> die 8.Stelle des Wertes die höchste ist.
> Ich kann nicht automatisch sagen, dass der neue Datensatz gültig ist, da
> eventuell ein neuerer Wert schon existiert und dieser nur noch der
> vollständigkeitshalber hinzugefügt wird.
> Beispiel:
> AB123451;false
> AB123455;true <- höchster Wert an 8.Stelle, mit AB12345, deswegen true
> AB123453;false
> AB543212;false
> AB123454;false
> AB543218;true <- höchster Wert an 8.Stelle, mit AB54321, deswegen true
> ...
> Wie kann ich dies entwickeln?
> Es handelt sich hierbei immer um 8 Stellen.
Also:
test=# select * from foo;
x | b
----------+---
AB123451 | f
AB123455 | f
AB123453 | f
AB543212 | f
AB123454 | f
AB543218 | f
(6 rows)
Nun das Update:
update foo set b='t' where x in
(select a || b from
(select a, max(b) as b from
(select x, substring(x from 1 for 7) as a, substring(x from 8 for 1) as b from foo order by 1,2)x
group by a)c);
.... geht aber bestimmt noch schöner.
test=# select * from foo order by 1;
x | b
----------+---
AB123451 | f
AB123453 | f
AB123454 | f
AB123455 | t
AB543212 | f
AB543218 | t
(6 rows)
end
Andreas
--
Diese Message wurde erstellt mit freundlicher Unterstützung eines freilau-
fenden Pinguins aus artgerechter Freilandhaltung. Er ist garantiert frei
von Micro$oft'schen Viren. (#97922 http://counter.li.org) GPG 7F4584DA
Was, Sie wissen nicht, wo Kaufbach ist? Hier: N 51.05082°, E 13.56889° ;-)
.
- Follow-Ups:
- Re: psql: höchster Wert auf True
- From: Daniel Seichter
- Re: psql: höchster Wert auf True
- References:
- psql: höchster Wert auf True
- From: Daniel Seichter
- psql: höchster Wert auf True
- Prev by Date: psql: höchster Wert auf True
- Next by Date: Re: psql: höchster Wert auf True
- Previous by thread: psql: höchster Wert auf True
- Next by thread: Re: psql: höchster Wert auf True
- Index(es):
Relevant Pages
|
Loading