Re: [de-users] Reguläre Ausdrücke in Base Abfragen

2012-03-29 Diskussionsfäden LuFle



Konkret möchte ich alle Werte finden, die mit sechs Ziffern beginnen,
d.h. also mein Ausdruck wäre etwas wie

'^[0-9]{6}.*$'


Hi - ist zwar nicht das was man einen regulären Ausdruck nennt, aber für 
die meisten Daten wird's passen.


Wenn Du Dir sicher bist, dass es keine Einträge gibt, die 1Z3456 heißen, 
dann kannst Du einfach die 'LEFT' Funktion benutzen:


SELECT LEFT( TextFeld, 6 ) AS Stellen 1 bis 6,
   ( CONVERT ( LEFT( TextFeld, 6 ) , BIGINT ) ) * 3 AS 
Konvertiert und Plutimikation

FROM Tabelle1
WHERE LEFT( TextFeld, 6 ) = '0'
  AND LEFT( TextFeld, 6 ) = '99'

sonst musst Du jede Stelle einzeln abfragen:

SELECT LEFT( TextFeld, 6 ) AS Stellen 1 bis 6,
   (CONVERT(LEFT(TextFeld,6),BIGINT)) * 3 AS Konvertiert und 
Plutimikation

FROM Tabelle1
WHERE SUBSTRING ( TextFeld, 1, 1 ) = '0' AND SUBSTRING ( TextFeld, 
1, 1 ) = '9'
  AND SUBSTRING ( TextFeld, 2, 1 ) = '0' AND SUBSTRING ( TextFeld, 
2, 1 ) = '9'
  AND SUBSTRING ( TextFeld, 3, 1 ) = '0' AND SUBSTRING ( TextFeld, 
3, 1 ) = '9'
  AND SUBSTRING ( TextFeld, 4, 1 ) = '0' AND SUBSTRING ( TextFeld, 
4, 1 ) = '9'
  AND SUBSTRING ( TextFeld, 5, 1 ) = '0' AND SUBSTRING ( TextFeld, 
5, 1 ) = '9'
  AND SUBSTRING ( TextFeld, 6, 1 ) = '0' AND SUBSTRING ( TextFeld, 
6, 1 ) = '9'


Über die Convert-Funktion kannst Du prüfen ob Deine Abfrage stimmt -
sollte eine Exception kommen, dann weil ein Buchstabe oder Sonder-
zeichen nicht in einen Numerischen Wert umgewandelt werden kann.

--
Informationen zum Abmelden: E-Mail an users+h...@de.libreoffice.org
Probleme? 
http://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: http://listarchives.libreoffice.org/de/users/
Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert


[de-users] Re: [de.-users] Reguläre Ausdrücke in Base Abfragen

2012-03-29 Diskussionsfäden Jost Lange

Hallo liebe Liste,

Anfrage:

Am 29.03.2012 09:13, schrieb LuFle:



Konkret möchte ich alle Werte finden, die mit sechs Ziffern beginnen,
d.h. also mein Ausdruck wäre etwas wie

'^[0-9]{6}.*$'


Kann mir jemand freundlicherweise kurz erklären, um was es sich bei 
vorsteh. Hieroglyphen

handelt und wozu diese für den Normal-Anwender von LO nütze sind?



Hi - ist zwar nicht das was man einen regulären Ausdruck nennt, aber
für die meisten Daten wird's passen.

Wenn Du Dir sicher bist, dass es keine Einträge gibt, die 1Z3456
heißen, dann kannst Du einfach die 'LEFT' Funktion benutzen:

SELECT LEFT( TextFeld, 6 ) AS Stellen 1 bis 6,
   ( CONVERT ( LEFT( TextFeld, 6 ) , BIGINT ) ) * 3 AS
Konvertiert und Plutimikation
FROM Tabelle1
WHERE LEFT( TextFeld, 6 ) = '0'
  AND LEFT( TextFeld, 6 ) = '99'

sonst musst Du jede Stelle einzeln abfragen:

SELECT LEFT( TextFeld, 6 ) AS Stellen 1 bis 6,
   (CONVERT(LEFT(TextFeld,6),BIGINT)) * 3 AS Konvertiert und
Plutimikation
FROM Tabelle1
WHERE SUBSTRING ( TextFeld, 1, 1 ) = '0' AND SUBSTRING (
TextFeld, 1, 1 ) = '9'
  AND SUBSTRING ( TextFeld, 2, 1 ) = '0' AND SUBSTRING (
TextFeld, 2, 1 ) = '9'
  AND SUBSTRING ( TextFeld, 3, 1 ) = '0' AND SUBSTRING (
TextFeld, 3, 1 ) = '9'
  AND SUBSTRING ( TextFeld, 4, 1 ) = '0' AND SUBSTRING (
TextFeld, 4, 1 ) = '9'
  AND SUBSTRING ( TextFeld, 5, 1 ) = '0' AND SUBSTRING (
TextFeld, 5, 1 ) = '9'
  AND SUBSTRING ( TextFeld, 6, 1 ) = '0' AND SUBSTRING (
TextFeld, 6, 1 ) = '9'


und wozu braucht man diese vorsteh. Kenntnisse?  Aus welchem 
EDV-Sprachbereich sind sie?





Über die Convert-Funktion kannst Du prüfen ob Deine Abfrage stimmt -
sollte eine Exception kommen, dann weil ein Buchstabe oder Sonder-
zeichen nicht in einen Numerischen Wert umgewandelt werden kann.


Danke und mit freundlichem Gruß !
 JoLa


--
 Jost  Lange,  Dipl.-Ing.
Dozent f. Gebäude-Technik AD
  Lektor f. EDV-Anwendungen
59075  Hamm/Westf.,  Eschstr. 1b
 R + F:  02381 - 72838


--
Informationen zum Abmelden: E-Mail an users+h...@de.libreoffice.org
Probleme? 
http://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/

Tipps zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: http://listarchives.libreoffice.org/de/users/
Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert


--
Informationen zum Abmelden: E-Mail an users+h...@de.libreoffice.org
Probleme? 
http://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: http://listarchives.libreoffice.org/de/users/
Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert



[de-users] Reguläre Ausdrücke in Base Abfragen

2012-03-28 Diskussionsfäden Andre Tann
Servus zusammen,

ich komm grad nicht drauf, wie man reguläre Ausdrücke in
Filterbedingungen in Base nutzen kann. Ich habe versucht

… WHERE column RLIKE 'regex_here'
… WHERE column REGEXP 'regex_here'
… WHERE column REGEXP_LIKE 'regex_here'

Aber nichts davon funktioniert.

Konkret möchte ich alle Werte finden, die mit sechs Ziffern beginnen,
d.h. also mein Ausdruck wäre etwas wie

'^[0-9]{6}.*$'

Kann mir jemand einen Tip geben?

Danke+Gruß!

-- 
Andre Tann


-- 
Informationen zum Abmelden: E-Mail an users+h...@de.libreoffice.org
Probleme? 
http://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: http://listarchives.libreoffice.org/de/users/
Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert


Re: [de-users] Reguläre Ausdrücke in Base Abfragen

2012-03-28 Diskussionsfäden Achim Pabel
Hallo Andre,

ich arbeite (über Perl) zwar häufig mit Regulären Ausdrücken
und kann Dir deshalb auch aus Erfahrung sagen das 

.*$
(irgendwas) punkt stern zeilenende

zwar Probleme bereiten, aber warum, dass weiss ich selbst nur so 
ungefähr und müsste es erst nachlesen.

Über

http://www.regexe.de/

habe ich ein paar Tests gefahren und kann Dir vielleicht folgenden 
Ausdruck anbieten:

^[0-9]{6}.{0,}

zeilenanfang [ziffern] {exakt 6} punkt_fuer_irgendwas  {0 zeichen 
bis zeilenende}

Gruß Achim

-- 
openSUSE 11.4
KDE – Frei sein!
Plattform-Version 4.6.00 (4.6.0) release 6

LibreOffice 3.3.4
OOO340m1 (Build:502)
---

„Mir, ... war die konsequente Rechtschreibung immer ziemlich 
gleichgültig. Wie dieses oder jenes Wort geschrieben wird, darauf 
kommt es doch eigentlich nicht an, sondern darauf, daß die Leser 
verstehen, was man damit sagen wollte.“
Johann Wolfgang von Goethe (1749-1832), dt. Dichter.
Am Mittwoch, 28. März 2012, 08:50:30 schrieb Andre Tann:
 Servus zusammen,
 
 ich komm grad nicht drauf, wie man reguläre Ausdrücke in
 Filterbedingungen in Base nutzen kann. Ich habe versucht
 
   … WHERE column RLIKE 'regex_here'
   … WHERE column REGEXP 'regex_here'
   … WHERE column REGEXP_LIKE 'regex_here'
 
 Aber nichts davon funktioniert.
 
 Konkret möchte ich alle Werte finden, die mit sechs Ziffern
 beginnen, d.h. also mein Ausdruck wäre etwas wie
 
   '^[0-9]{6}.*$'
 
 Kann mir jemand einen Tip geben?
 
 Danke+Gruß!


-- 
Informationen zum Abmelden: E-Mail an users+h...@de.libreoffice.org
Probleme? 
http://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: http://listarchives.libreoffice.org/de/users/
Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert


Re: [de-users] Reguläre Ausdrücke in Base Abfragen

2012-03-28 Diskussionsfäden Robert Großkopf
Hallo Andre,
 
 ich komm grad nicht drauf, wie man reguläre Ausdrücke in
 Filterbedingungen in Base nutzen kann. Ich habe versucht
 
   … WHERE column RLIKE 'regex_here'
   … WHERE column REGEXP 'regex_here'
   … WHERE column REGEXP_LIKE 'regex_here'

Ich habe die Befürchtung, dass Du mit Deinem Vorhaben kein Glück haben
wirst, zumindest wenn Du die interne HSQLDB benutzt. Die kennt nur LIKE
und dort dann auch nur Platzhalter für ein oder beliebig viele Zeichen:

The LIKE keyword uses '%' to match any (including 0) number of
characters, and '_' to match exactly one character. To search for '%' or
'_' itself an escape character must also be specified using the ESCAPE
clause. For example, if the backslash is the escaping character, '\%'
and '\_' can be used to find the '%' and '_' characters themselves. For
example, SELECT  LIKE '\_%' ESCAPE '\' will find the strings
beginning with an underscore.

Wenn Du z.B. MySQL nutzt geht REGEXP bzw. RLIKE mit den von Dir
aufgeführten Parametern.

Gruß

Robert

-- 
Informationen zum Abmelden: E-Mail an users+h...@de.libreoffice.org
Probleme? 
http://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: http://listarchives.libreoffice.org/de/users/
Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert


Re: [de-users] Reguläre Ausdrücke in Base Abfragen

2012-03-28 Diskussionsfäden Christian Lohmaier
2012/3/28 Andre Tann at...@alphasrv.net:
 Servus zusammen,

 ich komm grad nicht drauf, wie man reguläre Ausdrücke in
 Filterbedingungen in Base nutzen kann. Ich habe versucht

        … WHERE column RLIKE 'regex_here'
        … WHERE column REGEXP 'regex_here'
        … WHERE column REGEXP_LIKE 'regex_here'

 Aber nichts davon funktioniert.

Standard Keyword wäre LIKE_REGEX - aber k.A. ob hsqldb das unterstützt.

Was aber in der Doku aufgeführt wird ist REGEXP_MATCHES,
REGEXP_SUBSTRING und REGEXP_SUBSTRING_ARRAY

http://hsqldb.org/doc/guide/builtinfunctions-chapt.html#bfc_string_binary_functions

ciao
Christian

-- 
Informationen zum Abmelden: E-Mail an users+h...@de.libreoffice.org
Probleme? 
http://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: http://listarchives.libreoffice.org/de/users/
Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert



Re: [de-users] Reguläre Ausdrücke in Base Abfragen

2012-03-28 Diskussionsfäden Robert Großkopf
Hallo Christian,
 
 Standard Keyword wäre LIKE_REGEX - aber k.A. ob hsqldb das unterstützt.
 
 Was aber in der Doku aufgeführt wird ist REGEXP_MATCHES,
 REGEXP_SUBSTRING und REGEXP_SUBSTRING_ARRAY
 
 http://hsqldb.org/doc/guide/builtinfunctions-chapt.html#bfc_string_binary_functions

Diese Dokumentation ist leider für die 2.2 der HSQLDB. Und die interne
von LibreOffice ist die 1.8.* Die Dokumentation hierzu ist irgendwann im
letzten Monat vom Server genommen worden - meine Links zeigen dazu nur
noch Error 404 an. Ich habe allerdings den kompletten Inhalt hier auf
Platte. Und da gibt es keine REGEXP-Funktionen.

Gruß

Robert

-- 
Informationen zum Abmelden: E-Mail an users+h...@de.libreoffice.org
Probleme? 
http://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: http://listarchives.libreoffice.org/de/users/
Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert