-
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
-
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
-
Vielleicht geht‘s ja auch so?
SELECT *
FROM artikel
WHERE artikelnummer =
UPPER(artikelnummer)
-
Nun ja, mixed Case schließt du damit ja auch aus und Ziffern gibts nicht in klein.
-
 Zitat von Fuerchau
Danke für Deine schnelle Antwort, leider darf ich hier nichts installieren,
gibt es auch noch eine andere Möglichkeit??
-
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.
-
Welche Artikel sollen ausgegeben werden? Welche nicht? Beispiele!
-
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
.
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
-
 Zitat von Pikachu
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!!!
-
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
-
By Bitverdreher in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 05-11-13, 08:39
-
By behmer in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 29-05-06, 12:52
-
By CZE425 in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 25-03-04, 10:25
-
By Helwo in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 19-03-02, 09:01
-
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
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks