Skip site navigation (1) Skip section navigation (2)

Re: Komisches Ergebnis in WHERE .... Denkfehler ?

From: Hubertus von Fuerstenberg <hubertus(dot)fuerstenberg(at)ise(dot)fhg(dot)de>
To: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: Komisches Ergebnis in WHERE .... Denkfehler ?
Date: 2010-11-22 14:40:55
Message-ID: 4CEA80F7.1090607@ise.fhg.de (view raw or flat)
Thread:
Lists: pgsql-de-allgemein
On 11/22/10 3:24 PM, Martin Spott wrote:
> Tach zusammen, ich sitze moeglicherweise einem ganz dummen Denkfehler
> auf, erkenne ihn aber offenbar selbst mit Nachdenken nicht.  Eigentlich
> handelt es sich um eine der einfachsten Aufgaben, die so eine Datenbank
> ueberhaupt kennt ....  :-/
> Der 'Kandidat' ist eine PostgreSQL/PostGIS-Datenbank. Diese haben
> naturgemaess alle eine Tabelle "geometry_columns", in der diejenigen
> Tabellen gelistet sind, die so eingerichtet sind, dass sie Geodaten
> speichern koennen (das ist etwas vereinfacht, aber dennoch zutreffend).
>
> Ich will mir nun diejenigen Tabellen listen lassen, deren Name mit
> "clc" und anschliessend einem Unterstrich beginnt:
>
> landcover=>  \d geometry_columns
>              Table "public.geometry_columns"
>        Column       |          Type          | Modifiers
> -------------------+------------------------+-----------
>   f_table_catalog   | character varying(256) | not null
>   f_table_schema    | character varying(256) | not null
>   f_table_name      | character varying(256) | not null
>   f_geometry_column | character varying(256) | not null
>   coord_dimension   | integer                | not null
>   srid              | integer                | not null
>   type              | character varying(30)  | not null
> Indexes:
>      "geometry_columns_pk" PRIMARY KEY, btree (f_table_catalog, f_table_schema, f_table_name, f_geometry_column)
>
> landcover=>  SELECT f_table_name FROM geometry_columns WHERE f_table_name LIKE 'clc_%';
>         f_table_name
> --------------------------
>   clc06_fr_urban
> [...]
>

Moin,
ich hab es selbst nicht ausprobiert, aber das Manual von 9.0 sagt, dass 
ein '_' in der LIKE Anweisung auf ein beliebiges Zeichen matcht:

An underscore (_) in pattern stands for (matches) any single character; 
a percent sign (%) matches any sequence of zero or more characters. (aus 
http://www.postgresql.org/docs/9.0/interactive/functions-matching.html).

d.h. clc0 matcht auf clc_ aus dem LIKE und der Rest kommt vom '%'

HTH,
Hubertus

In response to

pgsql-de-allgemein by date

Next:From: Nicolas BarbierDate: 2010-11-22 14:41:17
Subject: Re: Komisches Ergebnis in WHERE .... Denkfehler ?
Previous:From: K├ÂnigDate: 2010-11-22 14:35:20
Subject:

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group