Zeichen am Ende eines Datensatzes löschen

Lafi2004

Benutzer
Beiträge
11
Servus zusammen,

ich weiß nicht ob ich hier richtig bin, falls nicht bitte ich den Beitrag zu verschieben. Ich habe eine Tabelle und in der Tabelle eine Spalte mit Beschreibungen, in den Beschreibungen ist als letzte Zeile (noch aus Urzeiten) als Abschluss eine Zeile mit "-" gemacht worden. Leider nicht in allen Datensätze und leider auch nicht immer gleichlang.
Beispiel:
Bezeichnung.................Artikel
Abmessungen................1 x 1 x 1
-------------------------------------------​
Diese letzte Zeile würde ich gerne überall löschen, aber leider weiß ich nicht wie... Könnt Ihr mir da helfen?

Lieben Gruß Lafi
 
Werbung:
Servus zusammen,

ich weiß nicht ob ich hier richtig bin, falls nicht bitte ich den Beitrag zu verschieben. Ich habe eine Tabelle und in der Tabelle eine Spalte mit Beschreibungen, in den Beschreibungen ist als letzte Zeile (noch aus Urzeiten) als Abschluss eine Zeile mit "-" gemacht worden. Leider nicht in allen Datensätze und leider auch nicht immer gleichlang.
Beispiel:
Bezeichnung.................Artikel
Abmessungen................1 x 1 x 1
-------------------------------------------​
Diese letzte Zeile würde ich gerne überall löschen, aber leider weiß ich nicht wie... Könnt Ihr mir da helfen?

Lieben Gruß Lafi


Unter PostgreSQL gibt es rtrim:

Code:
test=*# select E'123\nneue Zeile\n-------------';
  ?column?
---------------
 123  +
 neue Zeile  +
 -------------
(1 row)

test=*# select rtrim(E'123\nneue Zeile\n-------------','-');
  rtrim
------------
 123  +
 neue Zeile+

(1 row)

Falls das Newline noch stört:

Code:
test=*# select rtrim(rtrim(E'123\nneue Zeile\n-------------','-'),E'\n');
  rtrim
------------
 123  +
 neue Zeile
(1 row)
 
da war ich zu schnell :( trim(trailing,.. gibts da nicht.
wie genau wäre denn da mein sql?

select rtrim(rtrim(E '???,'-'),E'\n')
from note
where note.relate_key='86.28.078*'
 
select rtrim(rtrim(E note.note,'-'),E'\n')
from note
where note.relate_key='86.28.078*'

SQL Fehler (102): Falsche Syntax in der Nähe von 'note'.

EDIT: Ich habe nur mit HeidiSQL zugriff auf die Datenbank!
Falls das wichtig ist...
 
select rtrim(rtrim(E note.note,'-'),E'\n')
from note
where note.relate_key='86.28.078*'

SQL Fehler (102): Falsche Syntax in der Nähe von 'note'.

EDIT: Ich habe nur mit HeidiSQL zugriff auf die Datenbank!
Falls das wichtig ist...

Der Client ist eigentlich egal. Ich kenne HeidiSQL eher als MySQL-Client, egal.

Code:
test=*# select * from note ;
  note
-------------------------------------
 das ist  +
 eine weitere Zeile  +
 -----------------------------------
(1 row)

test=*# select *, rtrim(rtrim(note, '-'),E'\n') from note ;
  note  |  rtrim
-------------------------------------+--------------------
 das ist  +| das ist  +
 eine weitere Zeile  +| eine weitere Zeile
 ----------------------------------- |
(1 row)

Mach mal nur den Spaltennamen, nicht tabelle.spalte.
 
geht leider nicht... was ist denn mit dem "E" bei "rtrim(rtrim(note..." ohne das "E" kommt:

SQL Fehler (174): Die rtrim-Funktion erfordert 1 Argument(e).

Edit: jetzt bin ich im MySQL Bereich!?! ich benutze zwar HeidiSQL aber die Datenbank ist eine MS SQL
 
geht leider nicht... was ist denn mit dem "E" bei "rtrim(rtrim(note..." ohne das "E" kommt:

SQL Fehler (174): Die rtrim-Funktion erfordert 1 Argument(e).

Edit: jetzt bin ich im MySQL Bereich!?! ich benutze zwar HeidiSQL aber die Datenbank ist eine MS SQL

Das E ist eine Spezialität von PostgreSQL. Wenn die Variable standard_conforming_strings auf on ist, kann man innerhalb von Strings einfacher mit machen Steuerzeichen wie \n etc. umgehen. Demo:

Code:
test=*# select *, rtrim(rtrim(note, '-'),'\n') from note ;
  note  |  rtrim
-------------------------------------+--------------------
 das ist  +| das ist  +
 eine weitere Zeile  +| eine weitere Zeile+
 ----------------------------------- |
(1 row)

test=*# -- hier wird jetzt das \n nicht als Zeilentrenner gewertet. Dazu das E vor dem String
test=*# select *, rtrim(rtrim(note, '-'),E'\n') from note ;
  note  |  rtrim
-------------------------------------+--------------------
 das ist  +| das ist  +
 eine weitere Zeile  +| eine weitere Zeile
 ----------------------------------- |
(1 row)

test=*# -- nun schalte ich das auf off
test=*# set standard_conforming_strings to off;
SET
test=*# select *, rtrim(rtrim(note, '-'),'\n') from note ;
WARNING:  nonstandard use of escape in a string literal at character 34
HINT:  Use the escape string syntax for escapes, e.g., E'\r\n'.
WARNING:  nonstandard use of escape in a string literal
LINE 1: select *, rtrim(rtrim(note, '-'),'\n') from note ;
  ^
HINT:  Use the escape string syntax for escapes, e.g., E'\r\n'.
  note  |  rtrim
-------------------------------------+--------------------
 das ist  +| das ist  +
 eine weitere Zeile  +| eine weitere Zeile
 ----------------------------------- |
(1 row)


Das Du ins falsche Forum geschoben wurdes habe ich dem Admin schon mitgeteilt. War wohl ein Irrtum, an dem ich nicht ganz unschuldig bin, sorry.
 
Werbung:
naja, google hab ich jetzt 2 tage mit meinem Problem gequält :) aber irgendwie hab ich es nicht verstanden, oder es ging darum eine feste anzahl an Zeichen zu löschen...
 
Zurück
Oben