Zitat von
mkinzler:
Das Problem wird sich nur mit einer SP lösen lassen.
Sowas befürchte ich auch schon.
Zitat von
shmia:
Du kannst auch mehrere DELETE Anweisungen nacheinander absetzen.
DELETE FROM Artikel WHERE IdArtikel <> Trim(IdArtikel)
Damit bekomme ich dann alle Artikel, die vor oder nach der Artikelnummer ein Leerzeichen haben. Und dann
Zitat von
shmia:
Wenn deine Artikelnummer z.B. immer 10-stellig ist:
DELETe FROM Artikel WHERE IdArtikel > '9999999999' OR IdArtikel < '0000000000'
Das funzt aber nicht, weil das Feld ein String-Feld ist, und die Sortierung alphanumerisch ist.
Zitat von
shmia:
So werden die ungeliebten Daten Schritt für Schritt entsorgt.
Da habe ich zweifel, ob ich so zum gewünschten Ergebnis komme.
Zitat von
shmia:
Vielleicht solltest du aber ein neues Feld "delFlag" einführen.
Dann kannst du zuerst mit UPDATE das Feld setzen, bevor du durch ein falsches DELETE Kommando deine Daten riskierst:
UPDATE Artikel SET delFlag=1 WHERE IdArtikel <> Trim(IdArtikel)
und dann später werden alle Löschkandidaten gelöscht:
DELETE FROM Artikel WHERE delFlag <> 0
Gibt es
Und nen Haufen DaSi
Zitat von
alzaimar:
SQL-Code:
select * from Artikel
where not (
ArtikelNr like '%A%'
or ArtikelNr like '%B%'
or ArtikelNr like '%C%'
...
or ArtikelNr like '%Z%'
)
sollte doch funktionieren. Soweit ich weiss, ignoriert der LIKE-Operator die Gross/Kleinschreibung. Wenn nicht, müssen eben noch 26 LIKE-Klauseln mit den Kleinbuchstaben herhalten...
Momentan wird genau so auf ein vom Benutzer einzugebendes Zeichen reagiert, bzw. der Artikel mit dem Zeichen wird gelöscht.
Als ich das so in meinem Script machen wollte, bin ich dann aber an den Sonderzeichen gescheitert, weil alle möglichen Sonderzeichen in der Artikelnummer vorkommen können. Das mit Groß und Klein ist kein Problem die Artikelnummer ist Uppercase.
Danke schonmal
Grüsse vom
el Toppo