Einzelnen Beitrag anzeigen

Benutzerbild von el toppo
el toppo

Registriert seit: 27. Apr 2004
Ort: Aschheim
28 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: [SQL] where-Clause auf Stringfeld, in dem nur Zahlen ste

  Alt 27. Apr 2006, 18:29
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 > '9999999999OR 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
  Mit Zitat antworten Zitat