Supprimer le dernier caractère de la chaîne de colonne dans SQL Server CE
Dans SQL Server Compact, je suis en train de retirer une virgule qui est venu à partir d'une gaffe qui a touché plusieurs milliers de lignes de NVARCHAR
colonne.
UPDATE myTable
SET col = LEFT(col, LEN(col)-1)
WHERE col LIKE '%,';
génère l'erreur:
Il y avait une erreur lors de l'analyse de la requête. [ Jeton dans l'erreur = LEFT ]
Pouvez SQL Server CE pas analyser cette requête? Ou, quelqu'un peut-il proposer une autre approche?
Note: j'ai essayé ceci dans CompactView, je ne suis pas sûr si c'est ça le problème.
Vous devez vous connecter pour publier un commentaire.
Basé sur cet exemple j'ai été en mesure de le faire à l'aide de Sous-CHAÎNE:
LEFT( col, LENGTH( col ) -1 )
La solution proposée à l'aide
SET col = SUBSTRING(col, 0, LEN(col))
est un peu floues.Cela fonctionne comme un effet secondaire de la sous-CHAÎNE de la deuxième paramètre starting_position être "à 1". Donc 0 dans ce cas est une sorte de négatif (vous pouvez également utiliser c'est à dire -3 et 4 caractères serait dépouillé alors au lieu de 1).
À mon humble avis, il serait beaucoup plus clair d'utiliser cette:
UPDATE myTable
SET col = SUBSTRING(col, 1, LEN(col)-1)
WHERE col LIKE '%,';
Qui montre le code de l'intention du