texto - replace sql varios caracteres
ACTUALIZA y REEMPLAZA parte de una cadena (8)
Tengo una tabla con dos columnas, ID
y Value
. Quiero cambiar una parte de algunas cadenas en la segunda columna.
Ejemplo de tabla:
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
Ahora el 123/
en la cadena de Value
no es necesario. Traté de UPDATE
y REPLACE
:
UPDATE dbo.xxx
SET Value = REPLACE(Value, ''%123%'', '''')
WHERE ID <= 4
Cuando ejecuto el script, SQL Server no informa de un error, pero tampoco actualiza nada. ¿Porqué es eso?
No necesita comodines en el REPLACE
: simplemente encuentra la cadena que ingresa para el segundo argumento, por lo que debería funcionar lo siguiente:
UPDATE dbo.xxx
SET Value = REPLACE(Value, ''123/', '''')
WHERE ID <=4
(También agregué el /
en el reemplazo ya que asumo que usted tampoco necesita eso)
Para que la consulta se ejecute más rápido en tablas grandes donde no es necesario actualizar todas las líneas, también puede elegir actualizar solo las filas que se modificarán:
UPDATE dbo.xxx
SET Value = REPLACE(Value, ''123'', '''')
WHERE ID <= 4
AND Value LIKE ''%123%''
Para quien quiera reemplazar su script.
update dbo.[TABLE_NAME] set COLUMN_NAME= replace(COLUMN_NAME, ''old_value'', ''new_value'') where COLUMN_NAME like %CONDITION%
Tienes una tabla donde tienes un código de fecha que tiene siete caracteres algo así como
"32-1000"
Ahora quieres reemplazar todo
"32-"
Con
"14-"
La consulta SQL que tienes que ejecutar es
Update Products Set Code = replace(Code, ''32-'', ''14-'') Where ...(Put your where statement in here)
Trate de eliminar %
chars como abajo
UPDATE dbo.xxx
SET Value = REPLACE(Value, ''123'', '''')
WHERE ID <=4
consulta:
UPDATE tablename
SET field_name = REPLACE(field_name , ''oldstring'', ''newstring'')
WHERE field_name LIKE (''oldstring%'');
debe utilizar la siguiente consulta de actualización
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
Cualquiera de las consultas anteriores debería funcionar.
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