Calocybe: Wildcards

Hi Forum!

Ich brauechte mal etwas Aufklaerung ueber Wildcards in SQL.

Man kann ja in Abfragen mit LIKE die Zeichen _ und % als Platzhalter fuer genau ein oder beliebig viele beliebige Zeichen (sic!) verwenden. Wenn ich jetzt auf diese Zeichen selbst abpruefen, aber natuerlich trotzdem LIKE verwenden will, was muss ich denn da schreiben?

In meiner Erinnerung war es mir so, dass man die Zeichen einfach doppelt schreiben muesste, also %%, um ein % abzufragen, und %%% fuer ein %-Zeichen gefolgt von 0-n beliebigen Zeichen. Geht aber nicht. Zumindest nicht bei der mir vorliegenden DB, ein MS SQL 7 Server, auf den ich von Perl aus ueber ODBC zugreife. (Die Verdoppelung des ' funktioniert aber wie gewollt.)

Ist das jetzt ein Fehler (der DB oder des ODBC Treibers), oder lautet die richtige Schreibweise einfach anders?

So long, Calocybe

P.S. In der Dokumentation einer DB namens Gupta SQLBase fand ich die Moeglichkeit, die besagten Zeichen mit \ auszumaskieren. Das geht bei mir aber auch nicht. (Ist das nur proprietaerer Schwachsinn?)

  1. Hallo Calocybe,

    so wie ich das verstanden habe, kannst Du das Maskierungszeichen selbst definieren:

    zitat:
    Soll innerhalb von Tabellenzeilen nach einem der Sonderzeichen *, %, ?, _ gesucht werden, so ist dieses Zeichen mit Hilfe eines selbst zu wählenden ESCAPE-Zeichens zu maskieren.

    Gesucht sind alle Kunden, deren Name ein '_' enthält. Als ESCAPE-Zeichen wird das @-Zeichen gewählt.

    SELECT nachname, ort
           FROM kunde
           WHERE nachname LIKE '%@_%' ESCAPE '@'

    zitatende
    Quelle: http://www.informatik.uni-hamburg.de/Frauen/Admina/Beitraege/DB+WWW/sql-tutor/tuto_c.htm

    Ich hab das jetzt nicht getestet, probiers mal bitte.
    Viele Grüße, Rolf

    1. Hi Rolf

      Das ist ja der Hammer! Das funktioniert praechtig mit dem ESCAPE. Danke Danke. :-) Aber ist das auch Standard-SQL?

      So long

      1. Hi Rolf

        Das ist ja der Hammer! Das funktioniert praechtig mit dem ESCAPE. Danke Danke. :-) Aber ist das auch Standard-SQL?

        Freut mich dasses geht, der Link zu ADABAS ist echt gut, hier ist noch son Teil in online: http://www.mut.de/leseecke/buecher/sql/inhalt.htm (für die die ihr Büchergeld lieber vers*****, ähm veronlinen <g> ;tja Standard-SQL? - kann ich Dir nicht sagen, aber wenns bei ADABAS so steht und aufm SQL-Server läuft dürfte das schon ein Standard sein...
        Viele Grüße aus Erfurt, Rolf