598 Stimmen

UPDATE und ERSETZEN eines Teils eines Strings

Ich habe eine Tabelle mit zwei Spalten, ID und Wert. Ich möchte einen Teil einiger Zeichenfolgen in der zweiten Spalte ändern.

Beispiel einer Tabelle:

ID            Wert
---------------------------------
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 Wert-Zeichenfolge nicht benötigt. Ich habe es mit UPDATE und REPLACE versucht:

UPDATE dbo.xxx
SET Wert = REPLACE(Wert, '%123%', '')
WHERE ID <= 4

Wenn ich das Skript in SQL Server ausführe, wird kein Fehler gemeldet, aber es wird auch nichts aktualisiert. Warum ist das so?

8voto

ManhNguyen Punkte 111

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%

1voto

Mike Clark Punkte 1802
CREATE TABLE tbl_PersonalDetail
(ID INT IDENTITY ,[Date] nvarchar(20), Name nvarchar(20), GenderID int);

INSERT INTO Tbl_PersonalDetail VALUES(N'18-4-2015', N'Monay', 2),
                                     (N'31-3-2015', N'Monay', 2),
                                     (N'28-12-2015', N'Monay', 2),
                                     (N'19-4-2015', N'Monay', 2)

DECLARE @Date Nvarchar(200)

SET @Date = (SELECT [Date] FROM Tbl_PersonalDetail WHERE ID = 2)

UPDATE Tbl_PersonalDetail SET [Date] = (REPLACE(@Date , '-','/')) WHERE ID = 2

1voto

DotnetCoder Punkte 13

Sie sollten die untenstehende Aktualisierungsabfrage verwenden

UPDATE dbo.xxx SET Value=REPLACE(Value,'123\','') WHERE Id IN(1, 2, 3, 4)

UPDATE dbo.xxx SET Value=REPLACE(Value,'123\','') WHERE Id <= 4

Entweder eine der obigen Abfragen sollte funktionieren.

0voto

mirazimi Punkte 620

Ersetzen für persisches Wort

UPDATE dbo.TblNews
SET keyWords = REPLACE(keyWords, '-', N'')

Hilfe: dbo.TblNews -- Tabellenname

keyWords -- Feldname

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X