Maison >base de données >tutoriel mysql >Comment puis-je supprimer efficacement les zéros non significatifs des colonnes SQL Server ?
Pour supprimer les zéros non significatifs d'une colonne dans SQL Server, la méthode traditionnelle consiste à utiliser une combinaison de la fonction SUBSTRING
et de la fonction PATINDEX
. Cependant, cette approche peut rencontrer des problèmes lorsqu'il s'agit de colonnes contenant uniquement des caractères « 0 ».
Pour contourner cette limitation, une solution plus robuste consiste à ajouter un point (.) à la fin de la chaîne en cours de vérification :
<code class="language-sql">SUBSTRING(str_col, PATINDEX('%[^0]%', str_col+'.'), LEN(str_col))</code>
Cette période garantit que PATINDEX
trouvera toujours une correspondance de caractère autre que "0", même pour les colonnes ne contenant que des zéros non significatifs.
Une autre façon est d'utiliser les fonctions TRIM
et REPLACE
:
<code class="language-sql">REPLACE(LTRIM(REPLACE(str_col, '0', ' ')), ' ', '0')</code>
Cependant, cette méthode nécessite de la prudence lorsqu'il s'agit d'espaces intégrés. Pour éviter de convertir les espaces en « 0 », vous pouvez utiliser une fonction définie par l'utilisateur (UDF) scalaire personnalisée. Les FDU scalaires peuvent entraîner des problèmes de performances dans SQL Server 2005. Il est donc recommandé d'envisager d'autres méthodes lorsque cela est possible.
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!