J'essaie de remplacer plusieurs lignes dans une base de données Access pour suivre un nouvel ensemble de règles de données. Par exemple, le mot Fort à Fort Myers est répertorié comme Ft., Ft et Fort. Je voudrais apporter un changement global au groupe. Je suis familier avec la commande SQL replace, mais je me demande si quelqu'un a fait quelque chose de similaire avec une procédure stockée ou avait de l'expérience avec quelque chose comme ça.Comment utiliser la fonction de remplacement SQL efficacement?
Répondre
Vous devez être vraiment, vraiment prudent que vous ne remplacez pas plus que ce que vous avez l'intention. FAITES UNE SAUVEGARDE d'abord si les choses tournent mal. Toujours commencer par un SELECT pour filtrer les enregistrements en premier. Passez en revue les résultats avec soin.
SELECT * FROM Table WHERE City LIKE "%Ft. Myers%"
Puis faites les remplacements comme Carlton a dit.
Vous ne savez pas si la balise 't-sql' est pertinente, mais si vous utilisez Jet/ACE (familièrement 'MS Access'), il est préférable d'utiliser le mot clé ALIKE à la place de LIKE, sinon le moteur devra être en mode de requête ANSI-92 ou les caractères génériques '%' pour fonctionner correctement. – onedaywhen
Plus dur que cela puisse paraître au profane ...
Il n'y a pas moyen de contourner cela, mais faire un remplacement pour chaque chose que vous n'aimez pas, changer dans ce que vous n'aimez. MAIS SOYEZ TRÈS PRUDENT ... conséquences imprévues et tous. Je recommande de faire une sélection avant chaque mise à jour pour voir exactement ce que vous allez mettre à jour.
Donc, dans votre instance de Fort Myers que vous devez faire 3 Remplace:
Replace("Ft. Myers", "Fort Myers")
Replace("Ft Myers", "Fort Myers")
Replace("Fort. Myers", "Fort Myers")
Si vous avez beaucoup de données et beaucoup de choses à changer, cela pourrait être une tâche énorme. Mais il n'y a pas de façon "automatisée" de le faire - SQL n'utilise pas la logique floue, vous devez spécifier exactement tout ce que vous voulez faire.
Oui ... vous ne voulez pas faire d'erreur clbuttic. – BIBD
Les adresses de rangement peuvent être un cauchemar. Vous devrez peut-être créer une remplacer le tableau:
ShouldBe Current
Fort Myers Ft Myers
Foot Hill Ft Hills
Pour la plupart, la colonne ShouldBe peut être rempli avec des requêtes de mise à jour, mais vous serez également en mesure d'exécuter votre oeil sur les résultats avant de mettre à jour la table principale . Cela sera également utile pour la future saisie de données.
Si votre objectif est de normaliser les noms de ville qui sont quelque chose comme ~ Fort Myers, vous devriez être en mesure de faire quelque chose comme ceci:
UPDATE Table SET City = 'Fort Myers' WHERE City LIKE 'F%Myers';
Cela devrait remplacer tout champ Ville dans une ligne où la ville commence par un F et se termine à Myers. Cela peut être ce que vous voulez, mais soyez très prudent.
Vous ne savez pas si la balise 't-sql' est pertinente, mais si vous utilisez Jet/ACE (familièrement 'MS Access'), il est préférable d'utiliser le mot-clé ALIKE à la place de LIKE, sinon le moteur devra être en mode de requête ANSI-92 ou les caractères génériques '%' pour fonctionner correctement. – onedaywhen
- 1. Rails: Comment utiliser efficacement self.inherited
- 2. Comment utiliser le caractère d'échappement en fonction de remplacement lors du remplacement des citations dans VB
- 3. Comment utiliser le caractère d'échappement dans la fonction de remplacement lors du remplacement du point-virgule dans VB
- 4. Problème avec la fonction de remplacement
- 5. Comment utiliser MKS Integrity (contrôle de code source) plus efficacement
- 6. fonction texte Remplacement en php
- 7. comment utiliser la fonction setPixel dans iphone
- 8. Comment utiliser la fonction livevalidation de la bibliothèque javascript livevalidation?
- 9. Comment utiliser la fonction d'extraction de données de SQL Server 2008 avec ASP.Net
- 10. Solution de remplacement de chaîne SQL
- 11. Comment utiliser une fonction de construction de la doctrine
- 12. t-sql remplacement des guillemets
- 13. Comment copier efficacement istringstream?
- 14. Pour échapper de nombreux _ dans LaTeX efficacement
- 15. Remplacement d'un identifiant de fonction existant dans Eclipse
- 16. Remplacement de la chaîne Oracle
- 17. Remplacement de l'image de remplacement actuelle avec la bibliothèque JavaScript
- 18. Comment puis-je utiliser la fonction MySQL RLIKE dans SQL Server 2005?
- 19. MySQL n'utilise pas utiliser efficacement l'index pour requêtes ORDER BY
- 20. Comment "faire" efficacement avec Vim
- 21. Comment utiliser un paramètre de fonction sans le mentionner dans le corps de la fonction?
- 22. Problème avec la fonction SQL
- 23. Comment implémenter efficacement des sessions dans GAE?
- 24. SQL: rechercher efficacement de nombreux ID provenant de l'extérieur de la base de données
- 25. Remplacement de l'abonnement horaire de SQL Server Reporting Service
- 26. Comment utiliser la fonction genxmlquery d'informix en utilisant JDBC?
- 27. Comment utiliser la méthode d'une classe dans une fonction (PHP)?
- 28. Remplacement de la valeur XML dans XSLT
- 29. comment utiliser récupéré la base de données SQL
- 30. Comment utiliser la fonction WinAPI AccessibleObjectFromWindow dans Delphi?
Remplacer n'est pas une fonction SQL. Si vous exécutez votre SQL dans Access lui-même, vous pouvez utiliser la fonction VBA Replace() dans votre SQL, car le service d'expression Access permet l'utilisation de fonctions VBA prédéfinies et définies par l'utilisateur dans SQL. –
@David W. Fenton: encore une fois, vous ne voyez pas la différence entre Access et Jet/ACE. REPLACE() peut en effet être utilisé dans ACE/Jet SQL en dehors de l'interface utilisateur Access. Si l'affiche utilise MS SQL Server, REPLACE est également un mot-clé dans T-SQL (et SQL-92). – onedaywhen