J'ai un tableau avec deux colonnes, ID
et Value
. Je veux changer une partie de certaines chaînes dans la deuxième colonne.
Exemple de tableau:
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
Maintenant, le 123\
dans la Value
chaîne n'est plus nécessaire. J'ai essayé UPDATE
et REPLACE
:
UPDATE dbo.xxx
SET Value = REPLACE(Value, '%123%', '')
WHERE ID <= 4
Lorsque j'exécute le script, SQL Server ne signale pas d'erreur, mais il ne met rien à jour non plus. Pourquoi donc?
sql
sql-server
string
sql-server-2008
replace
aston_zh
la source
la source
Réponses:
Vous n'avez pas besoin de caractères génériques dans le
REPLACE
- il trouve juste la chaîne que vous entrez pour le deuxième argument, donc ce qui suit devrait fonctionner:(J'ai également ajouté le
\
dans le remplacement car je suppose que vous n'en avez pas besoin non plus)la source
`? isn't that escaping the
caractère `` et le rendre incorrect?Essayez de supprimer les
%
caractères comme ci-dessousla source
Pour accélérer l' exécution de la requête dans les grandes tables où toutes les lignes n'ont pas besoin d'être mises à jour, vous pouvez également choisir de ne mettre à jour que les lignes qui seront modifiées:
la source
requete:
la source
Vous avez une table où vous avez le code de date qui est quelque chose de sept caractères comme
Maintenant, vous voulez tout remplacer
Avec
La requête SQL que vous devez exécuter est
la source
Pour tous ceux qui veulent remplacer votre script.
update dbo.[TABLE_NAME] set COLUMN_NAME= replace(COLUMN_NAME, 'old_value', 'new_value') where COLUMN_NAME like %CONDITION%
la source
la source
vous devez utiliser la requête de mise à jour ci-dessous
L'une ou l'autre des requêtes ci-dessus devrait fonctionner.
la source
remplacer pour mot persan
help: dbo.TblNews - nom de la table
keyWords - nom fild
la source