Ich habe eine Tabelle mit zwei Spalten ID
und Value
. Ich möchte einen Teil einiger Zeichenfolgen in der zweiten Spalte ändern.
Beispiel einer Tabelle:
ID Value
---------------------------------
1 c:\temp\123\abc\111
2 c:\temp\123\abc\222
3 c:\temp\123\abc\333
4 c:\temp\123\abc\444
Jetzt wird das 123\
in der Value
Zeichenfolge nicht mehr benötigt. Ich habe versucht UPDATE
und REPLACE
:
UPDATE dbo.xxx
SET Value = REPLACE(Value, '%123%', '')
WHERE ID <= 4
Wenn ich das Skript ausführe, meldet SQL Server keinen Fehler, aktualisiert aber auch nichts. Warum ist das so?
sql
sql-server
string
sql-server-2008
replace
aston_zh
quelle
quelle
Antworten:
Sie benötigen keine Platzhalter in der
REPLACE
- es findet nur die Zeichenfolge, die Sie für das zweite Argument eingeben, daher sollte Folgendes funktionieren:(Ich habe auch das
\
im Ersetzen hinzugefügt , da ich davon ausgehe, dass Sie das auch nicht brauchen)quelle
`? isn't that escaping the
'`Zeichen und macht dies falsch?Versuchen Sie,
%
Zeichen wie unten zu entfernenquelle
Damit die Abfrage in großen Tabellen schneller ausgeführt wird, in denen nicht jede Zeile aktualisiert werden muss, können Sie auch festlegen, dass nur Zeilen aktualisiert werden, die geändert werden:
quelle
Abfrage:
quelle
Sie haben eine Tabelle, in der Sie einen Datumscode haben, der aus sieben Zeichen besteht
Jetzt möchten Sie alle ersetzen
Mit
Die SQL-Abfrage, die Sie ausführen müssen, lautet
quelle
Für alle, die Ihr Skript ersetzen möchten.
update dbo.[TABLE_NAME] set COLUMN_NAME= replace(COLUMN_NAME, 'old_value', 'new_value') where COLUMN_NAME like %CONDITION%
quelle
quelle
Sie sollten die folgende Update-Abfrage verwenden
Jede der oben genannten Abfragen sollte funktionieren.
quelle
für persisches Wort ersetzen
Hilfe: dbo.TblNews - Tabellenname
keyWords - fild name
quelle