GLE-Postgis-Wege- und Routennetz Views

Aus kvwmap
Wechseln zu: Navigation, Suche

Grundlage für die Views sind die Matritzen des Ausbauzustands und der Beurteilungskriterien.


Views Kategorien Rad

CREATE OR REPLACE VIEW wegenetz.kategorien_rad_1_3_4 AS 
         (         SELECT wegabschnitte.oid, 'rad'::text AS art, 'Kategorie 1'::text AS kategorie, wegabschnitte.wid, 'keine Einschränkung'::text AS grund, wegabschnitte.the_geom
                    FROM wegenetz.wegabschnitte
                   WHERE wegabschnitte.status::text = 'vorhanden'::text AND wegabschnitte.verbot_rad = false AND wegabschnitte.wegbreite >= 2.5 AND (wegabschnitte.wid IN ( SELECT zustand_rad.wid
                            FROM wegenetz.zustand_rad
                           WHERE zustand_rad.zustand_rad = '1'::text)) AND NOT (wegabschnitte.wid IN ( SELECT DISTINCT gefahrenstellen.wid
                            FROM wegenetz.gefahrenstellen
                           WHERE gefahrenstellen.art::text <> 'Poller'::text)) AND (wegabschnitte.kfzverkehr::text = 'Selbständiger Weg'::text OR wegabschnitte.kfzverkehr::text = 'Straßenbegleitender Weg'::text) AND wegabschnitte.wohlbefinden::text = 'keine Beeinträchtigung'::text AND NOT (wegabschnitte.wid IN ( SELECT DISTINCT weg2strassenquerung.wid
                            FROM wegenetz.weg2strassenquerung
                           WHERE weg2strassenquerung.querungsart::text = 'ungesicherte Querung'::text))
         UNION 
                  SELECT wegabschnitte.oid, 'rad'::text AS art, 'Kategorie 4'::text AS kategorie, wegabschnitte.wid, 'Radfahrverbot'::text AS grund, wegabschnitte.the_geom
                    FROM wegenetz.wegabschnitte
                   WHERE wegabschnitte.status::text = 'vorhanden'::text AND wegabschnitte.verbot_rad = true)
 UNION 
          SELECT wegabschnitte.oid, 'rad'::text AS art, 'Kategorie 3'::text AS kategorie, wegabschnitte.wid, rtrim(((
                 CASE
                     WHEN wegabschnitte.wegbreite < 2::numeric AND wegabschnitte.wegbreite > 0::numeric THEN 'Wegbreite < 2 m, '::text
                     ELSE ''::text
                 END || 
                 CASE
                     WHEN wegabschnitte.wegbreite IS NULL THEN 'Wegbreite unbekannt, '::text
                     ELSE ''::text
                 END) || 
                 CASE
                     WHEN (wegabschnitte.wid IN ( SELECT zustand_rad.wid
                        FROM wegenetz.zustand_rad
                       WHERE zustand_rad.zustand_rad = '3'::text)) THEN 'ungeeignete Ausbauart oder Mangel/Gefahrenstelle, '::text
                     ELSE ''::text
                 END) || 
                 CASE
                     WHEN (wegabschnitte.wid IN ( SELECT zustand_rad.wid
                        FROM wegenetz.zustand_rad
                       WHERE zustand_rad.zustand_rad = 'unbekannt'::text)) THEN 'Ausbauart unbekannt'::text
                     ELSE ''::text
                 END, ', '::text) AS grund, wegabschnitte.the_geom
            FROM wegenetz.wegabschnitte
           WHERE wegabschnitte.status::text = 'vorhanden'::text AND wegabschnitte.verbot_rad = false AND (wegabschnitte.wegbreite < 2::numeric OR wegabschnitte.wegbreite IS NULL OR (wegabschnitte.wid IN ( SELECT zustand_rad.wid
                    FROM wegenetz.zustand_rad
                   WHERE zustand_rad.zustand_rad = '3'::text OR zustand_rad.zustand_rad = 'unbekannt'::text)));
 
 CREATE OR REPLACE VIEW wegenetz.kategorien_rad_2 AS 
  SELECT wegabschnitte.oid, 'rad'::text AS art, 'Kategorie 2'::text AS kategorie, wegabschnitte.wid, rtrim((((
         CASE
             WHEN wegabschnitte.wegbreite >= 2::numeric AND wegabschnitte.wegbreite < 2.5 THEN 'Wegbreite >= 2 m und < 2,5 m, '::text
             ELSE ''::text
         END || 
         CASE
             WHEN (wegabschnitte.wid IN ( SELECT zustand_rad.wid
                FROM wegenetz.zustand_rad
               WHERE zustand_rad.zustand_rad = '2'::text)) THEN 'ausreichende Ausbauart oder Mangel/Gefahrenstelle, '::text
             ELSE ''::text
         END) || 
         CASE
             WHEN wegabschnitte.kfzverkehr::text <> 'Selbständiger Weg'::text AND wegabschnitte.kfzverkehr::text <> 'Straßenbegleitender Weg'::text THEN 'nicht selbständig geführter oder straßenbegleitender Weg, '::text
             ELSE ''::text
         END) || 
         CASE
             WHEN wegabschnitte.wohlbefinden::text <> 'keine Beeinträchtigung'::text THEN 'Beeinträchtigung des Wohlbefindens, '::text
             ELSE ''::text
         END) || 
         CASE
             WHEN (wegabschnitte.wid IN ( SELECT DISTINCT weg2strassenquerung.wid
                FROM wegenetz.weg2strassenquerung
               WHERE weg2strassenquerung.querungsart::text = 'ungesicherte Querung'::text)) THEN 'ungesicherte Straßenquerung'::text
             ELSE ''::text
         END, ', '::text) AS grund, wegabschnitte.the_geom
    FROM wegenetz.wegabschnitte
   WHERE wegabschnitte.status::text = 'vorhanden'::text AND NOT (wegabschnitte.wid IN ( SELECT kategorien_rad_1_3_4.wid
            FROM wegenetz.kategorien_rad_1_3_4));
 
 CREATE OR REPLACE VIEW wegenetz.kategorien_rad_alle AS 
          SELECT kategorien_rad_1_3_4.oid, kategorien_rad_1_3_4.art, kategorien_rad_1_3_4.kategorie, kategorien_rad_1_3_4.wid, kategorien_rad_1_3_4.grund, kategorien_rad_1_3_4.the_geom
            FROM wegenetz.kategorien_rad_1_3_4
 UNION 
          SELECT kategorien_rad_2.oid, kategorien_rad_2.art, kategorien_rad_2.kategorie, kategorien_rad_2.wid, kategorien_rad_2.grund, kategorien_rad_2.the_geom
            FROM wegenetz.kategorien_rad_2;

Views Kategorien Reiten

CREATE OR REPLACE VIEW wegenetz.kategorien_reiten_1_3_4 AS 
         (         SELECT wegabschnitte.oid, 'reiten'::text AS art, 'Kategorie 1'::text AS kategorie, wegabschnitte.wid, 'keine Einschränkung'::text AS grund, wegabschnitte.the_geom
                    FROM wegenetz.wegabschnitte
                   WHERE wegabschnitte.status::text = 'vorhanden'::text AND wegabschnitte.verbot_reiten = false AND wegabschnitte.wegbreite >= 2.5 AND (wegabschnitte.wid IN ( SELECT zustand_reiten.wid
                            FROM wegenetz.zustand_reiten
                           WHERE zustand_reiten.zustand_reiten = '1'::text)) AND (wegabschnitte.kfzverkehr::text = 'Selbständiger Weg'::text OR wegabschnitte.kfzverkehr::text = 'Straßenbegleitender Weg'::text) AND NOT (wegabschnitte.wid IN ( SELECT DISTINCT gefahrenstellen.wid
                            FROM wegenetz.gefahrenstellen)) AND wegabschnitte.wohlbefinden::text = 'keine Beeinträchtigung'::text AND NOT (wegabschnitte.wid IN ( SELECT DISTINCT weg2strassenquerung.wid
                            FROM wegenetz.weg2strassenquerung))
         UNION 
                  SELECT wegabschnitte.oid, 'reiten'::text AS art, 'Kategorie 4'::text AS kategorie, wegabschnitte.wid, 'Reitverbot'::text AS grund, wegabschnitte.the_geom
                    FROM wegenetz.wegabschnitte
                   WHERE wegabschnitte.status::text = 'vorhanden'::text AND wegabschnitte.verbot_reiten = true)
 UNION 
          SELECT wegabschnitte.oid, 'reiten'::text AS art, 'Kategorie 3'::text AS kategorie, wegabschnitte.wid, rtrim(((((
                 CASE
                     WHEN wegabschnitte.verbot_reiten = true THEN 'Verbot Reiten, '::text
                     ELSE ''::text
                 END || 
                 CASE
                     WHEN wegabschnitte.wegbreite < 1::numeric AND wegabschnitte.wegbreite > 1::numeric THEN 'Wegbreite < 1 m, '::text
                     ELSE ''::text
                 END) || 
                 CASE
                     WHEN wegabschnitte.wegbreite IS NULL THEN 'Wegbreite unbekannt, '::text
                     ELSE ''::text
                 END) || 
                 CASE
                     WHEN (wegabschnitte.wid IN ( SELECT zustand_reiten.wid
                        FROM wegenetz.zustand_reiten
                       WHERE zustand_reiten.zustand_reiten = '3'::text)) THEN 'ungeeignete Ausbauart oder Mangel/Gefahrenstelle, '::text
                     ELSE ''::text
                 END) || 
                 CASE
                     WHEN (wegabschnitte.wid IN ( SELECT zustand_reiten.wid
                        FROM wegenetz.zustand_reiten
                       WHERE zustand_reiten.zustand_reiten = 'unbekannt'::text)) THEN 'Ausbauart unbekannt, '::text
                     ELSE ''::text
                 END) || 
                 CASE
                     WHEN wegabschnitte.kfzverkehr IS NULL OR wegabschnitte.kfzverkehr::text = ''::text THEN 'KFZ-Verkehr unbekannt'::text
                     ELSE ''::text
                 END, ', '::text) AS grund, wegabschnitte.the_geom
            FROM wegenetz.wegabschnitte
           WHERE wegabschnitte.status::text = 'vorhanden'::text AND wegabschnitte.verbot_reiten = false AND (wegabschnitte.wegbreite < 1::numeric OR wegabschnitte.wegbreite IS NULL OR (wegabschnitte.wid IN ( SELECT zustand_reiten.wid
                    FROM wegenetz.zustand_reiten
                   WHERE zustand_reiten.zustand_reiten = '3'::text OR zustand_reiten.zustand_reiten = 'unbekannt'::text)) OR wegabschnitte.kfzverkehr IS NULL OR wegabschnitte.kfzverkehr::text = ''::text);
 
 CREATE OR REPLACE VIEW wegenetz.kategorien_reiten_2 AS 
  SELECT wegabschnitte.oid, 'reiten'::text AS art, 'Kategorie 2'::text AS kategorie, wegabschnitte.wid, rtrim((((
         CASE
             WHEN wegabschnitte.wegbreite >= 1::numeric AND wegabschnitte.wegbreite < 2.5 THEN 'Wegbreite >= 1 m und < 2.5 m, '::text
             ELSE ''::text
         END || 
         CASE
             WHEN (wegabschnitte.wid IN ( SELECT zustand_rad.wid
                FROM wegenetz.zustand_rad
               WHERE zustand_rad.zustand_rad = '2'::text)) THEN 'ausreichende Ausbauart oder Mangel/Gefahrenstelle, '::text
             ELSE ''::text
         END) || 
         CASE
             WHEN wegabschnitte.kfzverkehr::text <> 'Selbständiger Weg'::text AND wegabschnitte.kfzverkehr::text <> 'Straßenbegleitender Weg'::text THEN 'nicht selbständig geführter oder straßenbegleitender Weg, '::text
             ELSE ''::text
         END) || 
         CASE
             WHEN wegabschnitte.wohlbefinden::text <> 'keine Beeinträchtigung'::text THEN 'Beeinträchtigung des Wohlbefindens, '::text
             ELSE ''::text
         END) || 
         CASE
             WHEN (wegabschnitte.wid IN ( SELECT DISTINCT weg2strassenquerung.wid
                FROM wegenetz.weg2strassenquerung)) THEN 'ungesicherte Straßenquerung, '::text
             ELSE ''::text
         END, ', '::text) AS grund, wegabschnitte.the_geom
    FROM wegenetz.wegabschnitte
   WHERE wegabschnitte.status::text = 'vorhanden'::text AND NOT (wegabschnitte.wid IN ( SELECT kategorien_reiten_1_3_4.wid
            FROM wegenetz.kategorien_reiten_1_3_4));
 
 CREATE OR REPLACE VIEW wegenetz.kategorien_reiten_alle AS 
          SELECT kategorien_reiten_1_3_4.oid, kategorien_reiten_1_3_4.art, kategorien_reiten_1_3_4.kategorie, kategorien_reiten_1_3_4.wid, kategorien_reiten_1_3_4.grund, kategorien_reiten_1_3_4.the_geom
            FROM wegenetz.kategorien_reiten_1_3_4
 UNION 
          SELECT kategorien_reiten_2.oid, kategorien_reiten_2.art, kategorien_reiten_2.kategorie, kategorien_reiten_2.wid, kategorien_reiten_2.grund, kategorien_reiten_2.the_geom
            FROM wegenetz.kategorien_reiten_2;

Views Kategorien Wandern

CREATE OR REPLACE VIEW wegenetz.kategorien_wandern_1_3_4 AS 
         (         SELECT wegabschnitte.oid, 'wandern'::text AS art, 'Kategorie 1'::text AS kategorie, wegabschnitte.wid, 'keine Einschränkung'::text AS grund, wegabschnitte.the_geom
                    FROM wegenetz.wegabschnitte
                   WHERE wegabschnitte.status::text = 'vorhanden'::text AND wegabschnitte.verbot_wandern = false AND wegabschnitte.wegbreite IS NOT NULL AND (wegabschnitte.wid IN ( SELECT zustand_wandern.wid
                            FROM wegenetz.zustand_wandern
                           WHERE zustand_wandern.zustand_wandern = '1'::text)) AND wegabschnitte.kfzverkehr::text = 'Selbständiger Weg'::text AND NOT (wegabschnitte.wid IN ( SELECT DISTINCT gefahrenstellen.wid
                            FROM wegenetz.gefahrenstellen)) AND wegabschnitte.wohlbefinden::text = 'keine Beeinträchtigung'::text AND NOT (wegabschnitte.wid IN ( SELECT DISTINCT weg2strassenquerung.wid
                            FROM wegenetz.weg2strassenquerung
                           WHERE weg2strassenquerung.querungsart::text = 'ungesicherte Querung'::text))
         UNION 
                  SELECT wegabschnitte.oid, 'wandern'::text AS art, 'Kategorie 4'::text AS kategorie, wegabschnitte.wid, 'Verbot Fußgänger'::text AS grund, wegabschnitte.the_geom
                    FROM wegenetz.wegabschnitte
                   WHERE wegabschnitte.status::text = 'vorhanden'::text AND wegabschnitte.verbot_wandern = true)
 UNION 
          SELECT wegabschnitte.oid, 'wandern'::text AS art, 'Kategorie 3'::text AS kategorie, wegabschnitte.wid, rtrim(((
                 CASE
                     WHEN wegabschnitte.verbot_wandern = true THEN 'Verbot Wandern, '::text
                     ELSE ''::text
                 END || 
                 CASE
                     WHEN wegabschnitte.wegbreite IS NULL THEN 'Wegbreite unbekannt, '::text
                     ELSE ''::text
                 END) || 
                 CASE
                     WHEN (wegabschnitte.wid IN ( SELECT zustand_wandern.wid
                        FROM wegenetz.zustand_wandern
                       WHERE zustand_wandern.zustand_wandern = '3'::text)) THEN 'ungeeignete Ausbauart oder Mangel/Gefahrenstelle'::text
                     ELSE ''::text
                 END) || 
                 CASE
                     WHEN (wegabschnitte.wid IN ( SELECT zustand_wandern.wid
                        FROM wegenetz.zustand_wandern
                       WHERE zustand_wandern.zustand_wandern = 'unbekannt'::text)) THEN 'Ausbauart unbekannt'::text
                     ELSE ''::text
                 END, ', '::text) AS grund, wegabschnitte.the_geom
            FROM wegenetz.wegabschnitte
           WHERE wegabschnitte.status::text = 'vorhanden'::text AND wegabschnitte.verbot_wandern = false AND (wegabschnitte.wegbreite IS NULL OR (wegabschnitte.wid IN ( SELECT zustand_wandern.wid
                    FROM wegenetz.zustand_wandern
                   WHERE zustand_wandern.zustand_wandern = '3'::text OR zustand_wandern.zustand_wandern = 'unbekannt'::text)));
 
 CREATE OR REPLACE VIEW wegenetz.kategorien_wandern_2 AS 
  SELECT wegabschnitte.oid, 'wandern'::text AS art, 'Kategorie 2'::text AS kategorie, wegabschnitte.wid, rtrim(((
         CASE
             WHEN (wegabschnitte.wid IN ( SELECT zustand_wandern.wid
                FROM wegenetz.zustand_wandern
               WHERE zustand_wandern.zustand_wandern = '2'::text)) THEN 'ausreichende Ausbauart oder Mangel/Gefahrenstelle, '::text
             ELSE ''::text
         END || 
         CASE
             WHEN wegabschnitte.kfzverkehr::text <> 'Selbständiger Weg'::text THEN 'nicht selbständig geführter Weg, '::text
             ELSE ''::text
         END) || 
         CASE
             WHEN wegabschnitte.wohlbefinden::text <> 'keine Beeinträchtigung'::text THEN 'Beeinträchtigung des Wohlbefindens, '::text
             ELSE ''::text
         END) || 
         CASE
             WHEN (wegabschnitte.wid IN ( SELECT DISTINCT weg2strassenquerung.wid
                FROM wegenetz.weg2strassenquerung
               WHERE weg2strassenquerung.querungsart::text = 'ungesicherte Querung'::text)) THEN 'ungesicherte Straßenquerung'::text
             ELSE ''::text
         END, ', '::text) AS grund, wegabschnitte.the_geom
    FROM wegenetz.wegabschnitte
   WHERE wegabschnitte.status::text = 'vorhanden'::text AND NOT (wegabschnitte.wid IN ( SELECT kategorien_wandern_1_3_4.wid
            FROM wegenetz.kategorien_wandern_1_3_4));
 
 CREATE OR REPLACE VIEW wegenetz.kategorien_wandern_alle AS 
          SELECT kategorien_wandern_1_3_4.oid, kategorien_wandern_1_3_4.art, kategorien_wandern_1_3_4.kategorie, kategorien_wandern_1_3_4.wid, kategorien_wandern_1_3_4.grund, kategorien_wandern_1_3_4.the_geom
            FROM wegenetz.kategorien_wandern_1_3_4
 UNION 
          SELECT kategorien_wandern_2.oid, kategorien_wandern_2.art, kategorien_wandern_2.kategorie, kategorien_wandern_2.wid, kategorien_wandern_2.grund, kategorien_wandern_2.the_geom
            FROM wegenetz.kategorien_wandern_2;

Views Zustand

 CREATE OR REPLACE VIEW wegenetz.zustand_rad AS 
 SELECT wegabschnitte.wid, 
        CASE
            WHEN wegabschnitte.ausbauart::text = ANY (ARRAY['Asphalt'::character varying::text, 'Betonoberfläche'::character varying::text, 'Betonspurbahn'::character varying::text, 'Betonspurplatten'::character varying::text, 'Kunststeinpflaster'::character varying::text, 'wassergebundene Decke'::character varying::text]) THEN 
            CASE
                WHEN NOT (wegabschnitte.wid IN ( SELECT gefahrenstellen.wid
                   FROM wegenetz.gefahrenstellen
                  WHERE gefahrenstellen.art::text = ANY (ARRAY['Querrillen'::text, 'saisonal unbefahrbar'::text, 'starke Unebenheiten / Löcher'::text, 'starkes Gefälle / Steigung'::text, 'Stufen / Treppen'::text, 'Umlaufschranken'::text]))) THEN '1'::text
                WHEN (wegabschnitte.wid IN ( SELECT gefahrenstellen.wid
                   FROM wegenetz.gefahrenstellen
                  WHERE gefahrenstellen.art::text = ANY (ARRAY['Querrillen'::text, 'Umlaufschranken'::text]))) THEN '2'::text
                WHEN (wegabschnitte.wid IN ( SELECT gefahrenstellen.wid
                   FROM wegenetz.gefahrenstellen
                  WHERE gefahrenstellen.art::text = ANY (ARRAY['saisonal unbefahrbar'::text, 'starke Unebenheiten / Löcher'::text, 'starkes Gefälle / Steigung'::text, 'Stufen / Treppen'::text]))) THEN '3'::text
                ELSE NULL::text
            END
            WHEN wegabschnitte.ausbauart::text = ANY (ARRAY['Schotterweg'::character varying::text, 'Sand-/Kiesweg'::character varying::text, 'Waldweg'::character varying::text]) THEN 
            CASE
                WHEN NOT (wegabschnitte.wid IN ( SELECT gefahrenstellen.wid
                   FROM wegenetz.gefahrenstellen
                  WHERE gefahrenstellen.art::text = ANY (ARRAY['saisonal unbefahrbar'::text, 'starke Unebenheiten / Löcher'::text, 'starkes Gefälle / Steigung'::text, 'Stufen / Treppen'::text]))) THEN '2'::text
                WHEN (wegabschnitte.wid IN ( SELECT gefahrenstellen.wid
                   FROM wegenetz.gefahrenstellen
                  WHERE gefahrenstellen.art::text = ANY (ARRAY['saisonal unbefahrbar'::text, 'starke Unebenheiten / Löcher'::text, 'starkes Gefälle / Steigung'::text, 'Stufen / Treppen'::text]))) THEN '3'::text
                ELSE NULL::text
            END
            WHEN wegabschnitte.ausbauart::text = ANY (ARRAY['Kopfsteinpflaster'::character varying::text, 'naturbelassener Weg'::character varying::text]) THEN '3'::text
            WHEN wegabschnitte.ausbauart::text = ANY (ARRAY['befestigt'::character varying::text, 'versiegelt'::character varying::text, 'unbefestigt'::character varying::text, 'unbekannt'::character varying::text]) THEN 'unbekannt'::text
            ELSE NULL::text
        END AS zustand_rad
  FROM wegenetz.wegabschnitte;
 
 CREATE OR REPLACE VIEW wegenetz.zustand_reiten AS 
  SELECT wegabschnitte.wid, 
         CASE
             WHEN wegabschnitte.ausbauart::text = ANY (ARRAY['wassergebundene Decke'::character varying::text, 'Sand-/Kiesweg'::character varying::text, 'Waldweg'::character varying::text, 'naturbelassener Weg'::character varying::text]) THEN 
             CASE
                 WHEN NOT (wegabschnitte.wid IN ( SELECT gefahrenstellen.wid
                    FROM wegenetz.gefahrenstellen
                   WHERE gefahrenstellen.art::text = ANY (ARRAY['Querrillen'::text, 'saisonal unbefahrbar'::text, 'starke Unebenheiten / Löcher'::text, 'starkes Gefälle / Steigung'::text, 'Stufen / Treppen'::text, 'Umlaufschranken'::text]))) THEN '1'::text
                 WHEN (wegabschnitte.wid IN ( SELECT gefahrenstellen.wid
                    FROM wegenetz.gefahrenstellen
                   WHERE gefahrenstellen.art::text = ANY (ARRAY['Querrillen'::text, 'starke Unebenheiten / Löcher'::text, 'starkes Gefälle / Steigung'::text, 'Stufen / Treppen'::text, 'Umlaufschranken'::text]))) THEN '2'::text
                 WHEN (wegabschnitte.wid IN ( SELECT gefahrenstellen.wid
                    FROM wegenetz.gefahrenstellen
                   WHERE gefahrenstellen.art::text = 'saisonal unbefahrbar'::text)) THEN '2'::text
                 ELSE NULL::text
             END
             WHEN wegabschnitte.ausbauart::text = ANY (ARRAY['Asphalt'::character varying::text, 'Betonoberfläche'::character varying::text, 'Betonspurbahn'::character varying::text, 'Betonspurplatten'::character varying::text, 'Kunststeinpflaster'::character varying::text, 'Schotterweg'::character varying::text, 'Kopfsteinpflaster'::character varying::text]) THEN '3'::text
             WHEN wegabschnitte.ausbauart::text = ANY (ARRAY['befestigt'::character varying::text, 'versiegelt'::character varying::text, 'unbefestigt'::character varying::text, 'unbekannt'::character varying::text]) THEN 'unbekannt'::text
             ELSE NULL::text
         END AS zustand_reiten
   FROM wegenetz.wegabschnitte;
 
 CREATE OR REPLACE VIEW wegenetz.zustand_wandern AS 
  SELECT wegabschnitte.wid, 
        CASE
            WHEN wegabschnitte.ausbauart::text = ANY (ARRAY['wassergebundene Decke'::character varying::text, 'Schotterweg'::character varying::text, 'Sand-/Kiesweg'::character varying::text, 'Waldweg'::character varying::text, 'naturbelassener Weg'::character varying::text]) THEN 
            CASE
                WHEN NOT (wegabschnitte.wid IN ( SELECT gefahrenstellen.wid
                   FROM wegenetz.gefahrenstellen
                  WHERE gefahrenstellen.art::text = ANY (ARRAY['saisonal unbefahrbar'::text, 'starke Unebenheiten / Löcher'::text, 'starkes Gefälle / Steigung'::text, 'Stufen / Treppen'::text, 'Umlaufschranken'::text]))) THEN '1'::text
                WHEN (wegabschnitte.wid IN ( SELECT gefahrenstellen.wid
                   FROM wegenetz.gefahrenstellen
                  WHERE gefahrenstellen.art::text = ANY (ARRAY['saisonal unbefahrbar'::text, 'starke Unebenheiten / Löcher'::text, 'starkes Gefälle / Steigung'::text, 'Stufen / Treppen'::text, 'Umlaufschranken'::text]))) THEN '2'::text
                ELSE NULL::text
            END
            WHEN wegabschnitte.ausbauart::text = ANY (ARRAY['Asphalt'::character varying::text, 'Betonoberfläche'::character varying::text, 'Betonspurbahn'::character varying::text, 'Betonspurplatten'::character varying::text, 'Kunststeinpflaster'::character varying::text]) THEN 
            CASE
                WHEN NOT (wegabschnitte.wid IN ( SELECT gefahrenstellen.wid
                   FROM wegenetz.gefahrenstellen
                  WHERE gefahrenstellen.art::text = 'saisonal unbefahrbar'::text)) THEN '2'::text
                WHEN (wegabschnitte.wid IN ( SELECT gefahrenstellen.wid
                   FROM wegenetz.gefahrenstellen
                  WHERE gefahrenstellen.art::text = 'saisonal unbefahrbar'::text)) THEN '3'::text
                ELSE NULL::text
            END
            WHEN wegabschnitte.ausbauart::text = 'Kopfsteinpflaster'::character varying::text THEN '3'::text
            WHEN wegabschnitte.ausbauart::text = ANY (ARRAY['befestigt'::character varying::text, 'versiegelt'::character varying::text, 'unbefestigt'::character varying::text, 'unbekannt'::character varying::text]) THEN 'unbekannt'::text
            ELSE NULL::text
        END AS zustand_wandern
   FROM wegenetz.wegabschnitte;