Ergebnis 1 bis 3 von 3

Thema: Replace nur an bestimmter Stelle

  1. #1
    toni_83 ist offline Benutzer
    Registriert seit
    08.07.2008
    Beiträge
    42

    Standard Replace nur an bestimmter Stelle

    Hallo zusammen,

    ich habe Werte in einer Tabelle, bei denen ich gerne, wenn an der 4. und 5. stelle jeweils die 4 und die 5 stehen, auf 99 geändert.

    Beispiel:

    Code:
    BRP=# \d rb_test;
          Table "public.rb_test"
     Column |     Type     | Modifiers
    --------+--------------+-----------
     fred   | character(8) | not null

    aus:
    Code:
    BRP=# select * from rb_test;
       fred
    ----------
     12345678
     12445678
     94545678
     09444545
    (4 rows)
    soll folgendes werden:
    Code:
    BRP=# select * from rb_test;
       fred
    ----------
     12399678
     12499678
     94599678
     09444545
    (4 rows)
    Mit replace lässt sich das ja nicht lösen, oder doch?
    wer bis zum hals in der scheisse steckt, der sollte den kopf nicht hängen lassen

  2. #2
    akretschmer ist gerade online Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von toni_83 Beitrag anzeigen
    Hallo zusammen,

    ich habe Werte in einer Tabelle, bei denen ich gerne, wenn an der 4. und 5. stelle jeweils die 4 und die 5 stehen, auf 99 geändert.

    Beispiel:

    Code:
    BRP=# \d rb_test;
          Table "public.rb_test"
     Column |     Type     | Modifiers
    --------+--------------+-----------
     fred   | character(8) | not null

    aus:
    Code:
    BRP=# select * from rb_test;
       fred
    ----------
     12345678
     12445678
     94545678
     09444545
    (4 rows)
    soll folgendes werden:
    Code:
    BRP=# select * from rb_test;
       fred
    ----------
     12399678
     12499678
     94599678
     09444545
    (4 rows)
    Mit replace lässt sich das ja nicht lösen, oder doch?
    Code:
    test=# select * from toni ;
       fred
    ----------
     12345678
     12445678
     94545678
     09444545
    (4 rows)
    
    test=*# update toni set fred = overlay(fred placing '99' from 4 for 2) where  fred ~ '...45...';
    UPDATE 3
    test=*# select * from toni ;
       fred
    ----------
     09444545
     12399678
     12499678
     94599678
    (4 rows)
    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  3. #3
    toni_83 ist offline Benutzer
    Registriert seit
    08.07.2008
    Beiträge
    42

    Standard

    Code: test=# select * from toni ; fred ---------- 12345678 12445678 94545678 09444545 (4 rows) test=*# update toni set fred = overlay(fred placing '99' from 4 for 2) where fred ~ '...45...'; UPDATE 3 test=*# select * from toni ; fred ---------- 09444545 12399678 12499678 94599678 (4 rows) Andreas
    Ah, ok Aber noch ne Frage: Wieso wird die letzte Zeile ebenfalls geändert, obwohl hier der Wert 44 steht?


    Edit:
    Weil ich blind bin... sorry
    wer bis zum hals in der scheisse steckt, der sollte den kopf nicht hängen lassen

Ähnliche Themen

  1. log_statement = 'all' nur von bestimmter Database
    Von Sigh im Forum Konfiguration
    Antworten: 5
    Letzter Beitrag: 23.07.2009, 12:10
  2. Antworten: 7
    Letzter Beitrag: 10.07.2009, 09:53
  3. Ich stelle mich mal vor...
    Von nylen im Forum Smalltalk
    Antworten: 2
    Letzter Beitrag: 08.06.2009, 10:52
  4. Antworten: 6
    Letzter Beitrag: 11.05.2009, 15:25
  5. replace into
    Von gnoerz im Forum SQL
    Antworten: 10
    Letzter Beitrag: 02.02.2007, 10:58

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum