Maison >base de données >tutoriel mysql >Comment concaténer correctement des nombres et des chaînes dans T-SQL pour formater des nombres ?

Comment concaténer correctement des nombres et des chaînes dans T-SQL pour formater des nombres ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-18 17:33:14352parcourir

How to Correctly Concatenate Numbers and Strings in T-SQL to Format Numbers?

Comment concaténer des nombres et des chaînes pour formater des nombres dans T-SQL

Scénario

Vous avez créé une fonction, ActualWeightDIMS, qui concatène des valeurs entières représentant le poids, la longueur, la largeur et la hauteur réels à afficher sous forme de chaîne formatée. Cependant, lorsque vous appelez la fonction avec une instruction SELECT, vous recevez une erreur indiquant un échec de conversion lors de la conversion du varchar 'x' en entier.

Problème

L'erreur provient d'une concaténation incorrecte d'entiers de la fonction. paramètres avec des chaînes. SQL Server interprète l'ajout d'un entier (@Actual_Dims_Lenght) à une chaîne (« x ») comme une opération mathématique, entraînant une erreur de conversion.

Solution

Pour résoudre ce problème, vous Vous devez convertir explicitement vos paramètres entiers en VARCHAR avant de les concaténer avec des chaînes. Voici comment modifier votre fonction :

SET @ActualWeightDIMS =
     CAST(@Actual_Dims_Lenght AS VARCHAR(16)) + 'x' +
     CAST(@Actual_Dims_Width  AS VARCHAR(16)) + 'x' +
     CAST(@Actual_Dims_Height  AS VARCHAR(16))

En convertissant les paramètres entiers en VARCHAR, vous vous assurez que l'opération est traitée comme une concaténation de chaînes, ce qui donne la sortie formatée souhaitée.

Supplémentaire Considérations

Vous avez mentionné que les utilisateurs ne peuvent sélectionner que le poids ou les dimensions sur une page ASP.net. Vous avez demandé si vous deviez gérer cette validation côté SQL. Même si cela n’est pas strictement nécessaire, cela peut apporter un niveau de sécurité supplémentaire. Vous pouvez ajouter une contrainte CHECK dans la base de données pour garantir que lorsque l'utilisateur sélectionne des dimensions, les trois valeurs de dimension (longueur, largeur et hauteur) sont non NULL. Cela empêcherait la fonction de renvoyer des résultats incorrects ou incomplets.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn