[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Apr 2019
    Beiträge
    22

    SQL Abfrage nach Buchstaben und Zahlenkombination

    Hallo,

    ich habe ein Problem mit der Ausgabe meiner Stammdaten, da es einige
    Artikel gibt die früher mal falsch angelegt wurden sind (alphanummerisch in Groß und
    Kleinbuchstaben
    Beispiel:
    abstr198240
    ABSTR198240

    Alle Artikel mit Kleinbuchstaben sind verkehrt, ich habe nun versucht mit "LIKE"
    bzw. NOT LIKE diese Artikel nicht ausgeben zu lassen aber es funktioniert leider nicht:

    SELECT *
    FROM artikel
    WHERE artikelnummer LIKE '%[A-Z0-9]%'

    oder NOT LIKE '%[a-z]%'

    and NOT LIKE '%[0-9]%'

    Ich bekomme es leider nicht hin muss dazu auch sagen,
    dass ich ein Anfänger bin und hier dringend eure Hilfe benötige.

    Danke

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Dafür gibts die Funktion REGEXP_LIKE, die genau das liefert.
    Allerdings musste die per Installer-Option noch hinzugefügt werden.

    https://www.rpgpgm.com/2017/08/regex...ed-to-sql.html
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Vielleicht geht‘s ja auch so?

    SELECT *
    FROM artikel
    WHERE artikelnummer =
    UPPER(artikelnummer)

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Nun ja, mixed Case schließt du damit ja auch aus und Ziffern gibts nicht in klein.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    Apr 2019
    Beiträge
    22
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Dafür gibts die Funktion REGEXP_LIKE, die genau das liefert.
    Allerdings musste die per Installer-Option noch hinzugefügt werden.

    https://www.rpgpgm.com/2017/08/regex...ed-to-sql.html
    Danke für Deine schnelle Antwort, leider darf ich hier nichts installieren,
    gibt es auch noch eine andere Möglichkeit??

  6. #6
    Registriert seit
    Apr 2019
    Beiträge
    22
    Hallo Pikachu,
    ist UPPER nicht für die Umwandlung in Großbuchstaben zuständig,
    das wäre ja nicht korrekt (es gibt den selben Artikel mit Großbuchstaben auch dieser ist korrekt)
    ich will nur nummerische und alphanumerische Artikel
    in Großbuchstaben ausgegeben haben!!
    Die alphanumerische Artikel mit Kleinbuchstaben sind verkehrt und haben falsche Stammdaten.

  7. #7
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Welche Artikel sollen ausgegeben werden? Welche nicht? Beispiele!

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Pikachus Ansatz ist da nicht so falsch:

    UPPER verwandelt eben klein- in Großbuchstaben.
    Somit ist ein "Artikelnummer = upper(Artikelnummer)" eben nur wahr, wenn keine Kleinbuchstaben enthalten sind, denn
    Code:
    "AbcD" <> "ABCD"
    .

    Das Gegenstück ist dann eben "Artikelnummer != upper(Artikelnummer)" und enthält Kleinbuchstaben.
    Etwas ähliches gibts auch für Zahlen oder sonstige Kombinationen mit der Funktion Translate

    Artikelnummer = translate(Artikelnummer, "ABCDEFGHIJ", "0123456789")

    Jede Ziffer wird mit ihrem passenden Zeichen der Ersetzungstabelle ausgetauscht,
    also 0 => A, 1 => B, ...., 9 => J.
    Wenn also der Vergleich positiv ist enthält Artikelnummer eben keine Ziffern, wenn ungleich, dann sind eben Ziffern vorhanden.

    https://www.ibm.com/docs/en/i/7.5?to...ions-translate
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  9. #9
    Registriert seit
    Apr 2019
    Beiträge
    22
    Zitat Zitat von Pikachu Beitrag anzeigen
    Vielleicht geht‘s ja auch so?

    SELECT *
    FROM artikel
    WHERE artikelnummer =
    UPPER(artikelnummer)
    Du hattest absolut recht, das war die Lösung,
    ich habe es nicht geschnallt!!!

  10. #10
    Registriert seit
    Apr 2019
    Beiträge
    22
    Vielen Dank Pikachu und Fuerchau ich bekomme jetzt mit
    artikelnummer = UPPER(artikelnummer) alle Artikel nummerisch
    und Alphanummerisch in GROSSBUCHSTABEN ausgegeben!!!!
    absolut Geil, Ihr habt mich gerettet!!

Similar Threads

  1. SQL-Abfrage: Maximum einer Gruppe
    By Bitverdreher in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 05-11-13, 08:39
  2. Abfrage nach <> Ziffern in SQL
    By behmer in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 29-05-06, 12:52
  3. Drucken Datum Monat in Buchstaben statt udate
    By CZE425 in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 25-03-04, 10:25
  4. MS Access SQL Abfrage über ODBC
    By Helwo in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 19-03-02, 09:01
  5. SQL Abfrage Problem
    By HoScHiE in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 04-10-01, 14:24

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •