J'ai un tableau de plus de 4 millions de lignes et accidentellement dans une colonne, il y a plus de données que nécessaire.
Par exemple, au lieu de ABC
, il y a ABC DEFG
.
Comment puis-je supprimer ces N symboles en utilisant TSQL? Veuillez noter que je souhaite supprimer ces caractères de la base de données, PAS simplement sélectionner une sous-chaîne. Merci
UPDATE mytable SET column=LEFT(column, LEN(column)-5)
Supprime les 5 derniers caractères de la colonne (chaque ligne de mytable)
J'ai obtenu la réponse à ma propre question, et voici:
select reverse(stuff(reverse('a,b,c,d,'), 1, N, ''))
Où N est le nombre de caractères à supprimer. Cela évite d'écrire deux fois la colonne/chaîne complexe
Vous pouvez le faire en utilisant la fonction SUBSTRING()
:
UPDATE table SET column = SUBSTRING(column, 0, LEN(column) + 1 - N)
Supprime les N derniers caractères de chaque ligne de la colonne
Cela devrait le faire, en supprimant les caractères de la gauche par un ou le nombre nécessaire.
lEFT(columnX,LEN(columnX) - 1) AS NewColumnName