From: | Gunnar Oehmichen <oehm8895(at)uni-landau(dot)de> |
---|---|
To: | Gunnar Nick Bluth <gunnar(dot)bluth(at)pro-open(dot)de> |
Cc: | pgsql-de-allgemein(at)postgresql(dot)org |
Subject: | Re: IF ELSEIF Funktion in PL/pgSQL erstellen |
Date: | 2014-01-15 13:21:43 |
Message-ID: | 52D68B67.8020100@uni-landau.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-de-allgemein |
Danke funktioniert jetzt hervorragend. Bisherige ausschließliche Nutzung
von R worin ich es gewohnt bin alles schön nacheinander mit
abgespeicherten Objekten, die dann eben mal überschrieben werden, haben
mich an das Problem der Selbstreferenzierung gar nicht denken lassen.
Am 15.01.2014 13:31, schrieb Gunnar Nick Bluth:
> 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
> gunnar(dot)bluth(at)pro-open(dot)de
> +49-172-8853339
>
> Am 15.01.2014 13:06 schrieb Gunnar Oehmichen <oehm8895(at)uni-landau(dot)de>:
>>
>> 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 (pgsql-de-allgemein(at)postgresql(dot)org)
>> To make changes to your subscription:
>> http://www.postgresql.org/mailpref/pgsql-de-allgemein
--
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
From | Date | Subject | |
---|---|---|---|
Next Message | Stephan Wagner | 2014-01-21 12:36:09 | Schweizer PostgreSQL Konferenz 2014 |
Previous Message | Gunnar Nick Bluth | 2014-01-15 12:31:20 | Re: IF ELSEIF Funktion in PL/pgSQL erstellen |