Maison >base de données >tutoriel mysql >Comment concaténer correctement des nombres et des chaînes dans T-SQL pour formater des nombres ?
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.
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.
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.
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!