-
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
-
Ich wäre ja bösartig und würde etwas gegen die bösen Daten tun. Einmal. Dann Ruhe
-
Wenn man gestern schon gewusst hätte was heute böse ist lässt sich ja geradezu in der aktuellen Weltpolitik erleben.
Nur, an dem "Einmal. Dann Ruhe" scheiterts halt noch.
-
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!)
-
@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!)
-
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!)
-
Zitat von Robi
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
... ich würde das beim laden der Daten direkt bereinigen.
Sprich: Trigger, der das Huddelfeld entsprechend in ein (zusätzliches) numerisches Feld umsetzt und in einer (zentralen) Protokolldatei warnings bzw. auch error Meldungen protokolliert.
Wenn das Problem nicht nur ein Feld betrifft, sondern da umfassend Fug und Unfug ankommt würde ich die ankommenden Daten in Bereinigte und Huddel aufsplitten und den Huddel Pool von Zeit zu Zeit aufarbeiten.
D*B
-
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)
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