Mam stół z dwiema kolumnami ID
i Value
. Chcę zmienić część niektórych ciągów w drugiej kolumnie.
Przykład tabeli:
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
Teraz 123\
w Value
ciąg nie jest potrzebne. Próbowałem UPDATE
i REPLACE
:
UPDATE dbo.xxx
SET Value = REPLACE(Value, '%123%', '')
WHERE ID <= 4
Podczas wykonywania skryptu SQL Server nie zgłasza błędu, ale też niczego nie aktualizuje. Dlaczego?
sql
sql-server
string
sql-server-2008
replace
aston_zh
źródło
źródło
Odpowiedzi:
Nie potrzebujesz symboli wieloznacznych w
REPLACE
- znajduje tylko ciąg, który wpisujesz dla drugiego argumentu, więc następujące powinny działać:(Dodałem również
\
w zastępstwie, ponieważ zakładam, że nie jest to również potrzebne)źródło
`? isn't that escaping the
postacią i sprawia, że jest to niepoprawne?Spróbuj usunąć
%
znaki jak poniżejźródło
Aby zapytanie działało szybciej w dużych tabelach, w których nie każda linia wymaga aktualizacji, możesz także zaktualizować tylko wiersze, które zostaną zmodyfikowane:
źródło
pytanie:
źródło
Masz jedną tabelę z kodem daty, który jest siedmioznakowy
Teraz chcesz wymienić wszystkie
Z
Zapytanie SQL, które musisz uruchomić, to
źródło
Dla każdego, kto chce zastąpić twój skrypt.
update dbo.[TABLE_NAME] set COLUMN_NAME= replace(COLUMN_NAME, 'old_value', 'new_value') where COLUMN_NAME like %CONDITION%
źródło
źródło
powinieneś użyć poniższego zapytania o aktualizację
Każde z powyższych zapytań powinno działać.
źródło
zamień na perskie słowo
help: dbo.TblNews - nazwa tabeli
słowa kluczowe - nazwa fild
źródło