2017-08-09 1 views
0

Ich habe eine Zeichenfolge abcdef. Ich muss es auf das Ergebnis def abschneiden, dann fügen Sie in diese Zeichenfolge einen neuen Wert fff ein, um das Ergebnis fffdef zu erhalten. Bisher habe ich Teilzeichenfolge verwendetAbschneiden und Einfügen in Zeichenfolge

UPDATE mytable 
    SET col1 = 
    SUBSTRING(col1, 3, LEN(col1)) 
from 
    mytable 

Aber wie kann ich an den Anfang der Zeichenfolge Wert einfügen?

Antwort

1

Versuchen:

UPDATE mytable 
    SET col1 = 'fff' + 
    SUBSTRING(col1, 3, LEN(col1)) 
from 
    mytable 

WARNUNG: Dies wird col1 in allen in der Tabelle die Zeilen ändern

1

Ihre Anfrage sollte in Ordnung sein. . . ohne die from und mit STUFF():

UPDATE mytable 
    SET col1 = STUFF(col1, 1, 3, 'FFF') 

Wenn Sie eine from Klausel nicht verwenden, geben dem Verweis einen anderen Alias:

UPDATE t 
    SET col1 = STUFF(col1, 1, 3, 'FFF') 
    FROM mytable t 

Obwohl Ihre Version funktioniert:

UPDATE mytable 
    SET . . . 
    FROM mytable; 

I halte es für gefährlich, weil das etwas ganz anderes machen würde:

UPDATE mytable 
    SET . . . 
    FROM mytable t; 
0

Sie müssen nur concat(), wie folgt aus:

UPDATE mytable 
    SET col1 = CONCAT('fff', SUBSTRING(col1, 3, LEN(col1)) 
from 
    mytable 
Verwandte Themen