Re: IF ELSEIF Funktion in PL/pgSQL erstellen

Gunnar Nick Bluth <[email protected]> Wed, 15 Jan 2014 13:31:20 +0100
Newsgroups gmane.comp.db.postgresql.german
Message-ID <[email protected]>
Na ja, deine neue View sollte sich natürlich auf die Tabelle beziehen, nicht auf sich selbst ;-)

Gruß/Best regards,

Gunnar "Nick" Bluth

Sent from my mobile
[email protected]
+49-172-8853339

Am 15.01.2014 13:06 schrieb Gunnar Oehmichen <[email protected]>:
>
> Hallöchen Nick und Liste, 
>
> erstmal Danke für die Antworten, war sehr hilfreich. 
>
> nach anderer Arbeit und den Ferien mich jetzt mal wieder dem hier gewidmet. 
>
> Ich habe also ausgeführt (auf das Beispiel und den View um den es mir 
> eigentlich geht): 
>
> CREATE OR REPLACE VIEW taxons AS ( 
> SELECT *, (case when taxon_name ~ 'sp.$' then 
>                 case  when genus ~ 'idae$' then 'Familie' 
>                 else 'Gattung' 
>          end 
>         else 'Art' 
>         end) AS taxon_level 
> FROM taxons); 
>
> @Nick, deine Version funktioniert als Abfrage mit dem kleinen 
> Beispielview jedoch nicht mit dem View um den es eigentlich geht (den 
> ich euch der einfachheit halber natürlich vorenthalten habe). 
>
> gunnar=# SELECT * from taxons; 
>
>    family    |    genus    |      taxon_name      | taxon_level 
> -------------+-------------+----------------------+------------- 
> SPHAERIIDAE | Pisidium    | Pisidium personatum  | Art 
> SPHAERIIDAE | Pisidium    | Pisidium sp.         | Gattung 
> SPHAERIIDAE | Sphaeriidae | Sphaeriidae Gen. sp. | Familie 
> (3 rows) 
>
> Bei meinem eigentlichen View dagegen: 
>
> ERROR:  infinite recursion detected in rules for relation "taxons_points" 
>
>
> ********** Fehler ********** 
>
> ERROR: infinite recursion detected in rules for relation "taxons_points" 
> SQL Status:42P17 
>
> Könnt ihr mir weiterhelfen? 
>
> Herzlichen Dank, 
>
> Gunnar 
>
> > 
> > bluthg=# create or replace view tax_view as (select *, 
> >         case when taxon_name ~ 'sp.$' then 
> >                 case  when genus ~ 'idae$' then 'Familie' 
> >                 else 'Gattung' 
> >          end 
> >         else 'Art' 
> >         end 
> >         from taxons 
> > ); 
> > CREATE VIEW 
> > Zeit: 29,059 ms 
> > bluthg=# SELECT * from tax_view ; 
> > +-------------+-------------+----------------------+---------+ 
> > |   family    |    genus    |      taxon_name      |  case   | 
> > +-------------+-------------+----------------------+---------+ 
> > | SPHAERIIDAE | Pisidium    | Pisidium personatum  | Art     | 
> > | SPHAERIIDAE | Pisidium    | Pisidium sp.         | Gattung | 
> > | SPHAERIIDAE | Sphaeriidae | Sphaeriidae Gen. sp. | Familie | 
> > +-------------+-------------+----------------------+---------+ 
> > (3 Zeilen) 
>
>
> -- 
> Gunnar Oehmichen 
> Quantitative Landscape Ecology 
> Institute for Environmental Sciences 
> University Koblenz-Landau 
> Fortstrasse 7 
> 76829 Landau 
> Germany 
> http://www.uni-koblenz-landau.de/landau/fb7/umweltwissenschaften/landscape-ecology/Staff/gunnaroehmichen 
>
>
> -- 
> Sent via pgsql-de-allgemein mailing list ([email protected]) 
> To make changes to your subscription: 
> http://www.postgresql.org/mailpref/pgsql-de-allgemein 

-- 
Sent via pgsql-de-allgemein mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-de-allgemein