Suppression de caractères non numériques hautes performances dans les colonnes VARCHAR de SQL Server
Le nettoyage des données est essentiel pour l'efficacité des opérations SQL Server, en particulier lorsqu'il s'agit de colonnes VARCHAR et de contraintes de clés uniques. La suppression rapide des caractères non numériques est la clé d’une performance optimisée. Cette approche utilise une fonction stockée et une WHILE-PATINDEX
boucle pour une vitesse supérieure.
Cette méthode localise et supprime de manière itérative les caractères non numériques. La fonction PATINDEX
trouve le premier caractère non numérique et STUFF
le remplace par une chaîne vide. Cela continue jusqu'à ce qu'il ne reste que des chiffres.
Voici la fonction stockée optimisée :
<code class="language-sql">CREATE FUNCTION [fnRemoveNonNumericCharacters] (@strText VARCHAR(1000)) RETURNS VARCHAR(1000) AS BEGIN WHILE PATINDEX('%[^0-9]%', @strText) > 0 BEGIN SET @strText = STUFF(@strText, PATINDEX('%[^0-9]%', @strText), 1, '') END RETURN @strText END</code>
Cette fonction stockée améliore considérablement l'efficacité du nettoyage des données, telles que les numéros de téléphone, avant de les utiliser dans des comparaisons clés uniques. Ceci est particulièrement bénéfique lors du traitement de grands ensembles de données et évite les goulots d'étranglement des performances dans les processus d'importation de données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!