![]() |
Datenbank: Firebird • Version: 2,5,5 • Zugriff über: IBO / IBExpert
Buchstaben in Spalte löschen
Hallo, ich möchte per SQL in einer Spalte alle Buchstaben löschen bis auf ein kleines x.
Beispiel: 100 x 2 ml oder 100 Tabletten Ergebnis: 100 x 2 --> 100 Kennt jemand den passenden SQL Befehl? |
AW: Buchstaben in Spalte löschen
das kommt ganz auf den Dialekt an
aber im Umfeld von Decode/Translate müßtest Du fündig werden. Gruß K-H |
AW: Buchstaben in Spalte löschen
Zitat:
Das muss man schon genau durchdenken. Aber ich denke, ohne Stored Procedure (oder EXECUTE BLOCK) geht es nicht. Ist es deine DB, kannst du eine SP schreiben? Frank |
AW: Buchstaben in Spalte löschen
'100 Tabletten'
--> (zu) soll '100' ergeben ja ist meine DB. SP könnte ich schreiben aber wie wäre hier der Ansatz. |
AW: Buchstaben in Spalte löschen
Als Ansatz:
SQL-Code:
dann die Werte prüfen
create or alter procedure sp_converttext (
text varchar(255)) returns ( result varchar(255)) as declare variable l smallint; declare variable pos smallint; declare variable c char(1); begin result = null; l = char_length(:text); if (:l > 0) then begin pos = 1; while (:pos <= :l) do begin c = substring(:text from :pos for 1); if (:c in ('0','1','2','3','4','5','6','7','8','9', 'x', ' ')) then -- naechste Zeile kann weg, wenn doppelte Leerzeichen bleiben sollen if (not ((:pos > 1) and (:c = ' ') and (substring(:result from char_length(:result) for 1) = ' '))) then result = coalesce(:result, '')||:c; pos = :pos + 1; end end suspend; end
SQL-Code:
wenn es passt, dann das Update...
select
t.dein_feldname , (select result from sp_converttext(t.dein_feldname)) dein_feldname_NEU from deine_tabelle t Frank |
AW: Buchstaben in Spalte löschen
Da das jede Datenbank schön einfach kann :roll:
* per regex_replace alles Unerlaubtes entfernen oder * über regexp_matches das gewünschte raussuchen und neu zuweisen |
AW: Buchstaben in Spalte löschen
Zitat:
|
AW: Buchstaben in Spalte löschen
Was? :shock:
Selbst MySql kann das :lol: |
AW: Buchstaben in Spalte löschen
Ähem Oracle auch nicht!
Gruß K-H |
AW: Buchstaben in Spalte löschen
Ja, Firebird < 3 kann es nicht so ganz.
Aber 2.5 kann similar to ![]() Oracle kann es, weiß nicht genau seit wann, z.B. seit Version 10g ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz