-
was besseres als coalesce?
moin,
habe ein alpa Feld mit guten und bösen Daten.
gute Daten
123456
1234567
1234567--
1234567/
böse Daten
*Blank
HUGO
12DR77887777
...
ein
select coalesce(dec(trim(substr(FELD, 1, 7)), 7, 0), 0) from datei
zeigt (STRSQL) +++++++ bei den bösen Sätzen
Diese kann ich aber nicht selektieren
Wie komme ich an die Sätze die nicht so einfach sind, meine 'bösen' sind ja nur Bsp.!
Danke
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
Dazu bietet sich eine RegEx-Abfrage an.
Denke dir das passende Muster aus und suche alle, wo das Muster nicht passt:
REGEXP_LIKE(feld, muster).
Z.B: not regexp_like(trim(feld), '^\d+$')
-
Mit Regex geht das recht gut:
regexp_count('49d49494', '[^0-9]')
0 = Alles nur Zahlen
1 = Böse Zeichen gefunden
values(CASE WHEN regexp_count('49d49494', '[^0-9]') = 0 THEN dec('49d49494', 7, 0) ELSE 0 end)
lg Andreas
-
Danke Euch, ...
ab wann geht das?
Ich bekomme bei
(alle anzeigen)
select case when
regexp_count(trim(substr(FELD, 1, 7)), '[^0-9]') = 0
then
coalesce(dec(coalesce(trim(substr(FELD, 1, 7)), 0, 7, 0), 0)
else 0 end, FELD
from datei
ein QQQSVREG der art *SRVPGM in QSYS nicht gefunden
V7R3M0
??
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
Zitat von Robi
ein QQQSVREG der art *SRVPGM in QSYS nicht gefunden
Es muss das Produkt 5770-SS1 International Components for Unicode installiert sein.
Das scheint bei euch zu fehlen.
-
Wenn's nur darum geht, zu prüfen, ob auf den ersten 7 Zeichen Zahlen stehen, dann sollte es auch ohne Regular Expressions gehen:
In dem folgenden Beispiel werden nur die "bösen" Daten selektiert:
Code:
Select YourColumn, Translate(Left(YourClolumn, 7), ' ', '01234567890')
from YourTable
Where Translate(Left(YourColumn, 7), ' ', '01234567890') > '';
-
@Andreas und Baldur
funktioniert fast ...
gibt es einen brauchbaren, zur i passenden link, in dem ich die Syntax mal studieren kann?
Nur wenn FELd komplett leer ist, funktioniert es nicht.
@Birgitta
nein, es müssen nicht immer 7 Ziffern sein
0000001 kann da genauso stehen wie
1
001
ungefähr 1
weis ich nicht
liefer ich nach
15:30
Echtes Anwender Excel halt ...
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
Lade die die SQL-Reference-PDF von V7R4 runter, da ist alles ganz gut erklärt.
Um RegEx zu testen probiere ich immer gerne folgende Seite aus:
https://regex101.com/
Und was da dann funktioniert, passt meist auch für SQL und .Net.
Der Regexp_like sollte immer funktionieren, der regexp_count ggf. nicht.
Aber auch im Falle von NULL kann man wieder coalesce verwenden:
coalesce(regexp_like(), 1<>1)
coalesce(regexp_count(), 0)
-
Code:
regexp_count('', '[^0-9]|^$')
^=Anfang des Strings
$=Ende des Trings
Also wenn es Zeichen gibt, die keine Zahlen sind ODER nur Anfang/Ende (ohne Zeichen) gibt.
Du kannst dir auf Wikipedia die Regex Syntax anschauen.
Das meiste ist überall gleich.
Vereinzelt gibt es unterschiede beim Interpretieren, es gibt aber keinen IBM i Spezifischen interpreter.
-
Die Doku dazu steht aber sehr schön in der SQL-Reference.
https://www.ibm.com/docs/en/i/7.4?to...like-predicate
-
@böse daten
Unser horror in der EDV
Daten aus Excel!
Immer anders, immer mind. 30 % falsch, immer neue Fehler ...
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
Ich wäre ja bösartig und würde etwas gegen die bösen Daten tun. Einmal. Dann Ruhe
Similar Threads
-
By ILEMax in forum NEWSboard Programmierung
Antworten: 7
Letzter Beitrag: 11-08-21, 08:44
-
By Robi in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 27-07-21, 12:55
-
By Progras in forum NEWSboard Programmierung
Antworten: 11
Letzter Beitrag: 18-11-16, 11:16
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