Maison > base de données > tutoriel mysql > Comment éviter les erreurs de conversion lors de la concaténation de nombres et de chaînes dans T-SQL ?

Comment éviter les erreurs de conversion lors de la concaténation de nombres et de chaînes dans T-SQL ?

Patricia Arquette
Libérer: 2024-12-17 10:32:26
original
191 Les gens l'ont consulté

How to Avoid Conversion Errors When Concatenating Numbers and Strings in T-SQL?

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

Description du problème

Dans T-SQL, une tâche courante consiste à combiner nombres et chaînes pour formater un champ. Par exemple, vous devrez peut-être afficher les poids ou les dimensions en utilisant des unités spécifiques. Cependant, lors de la combinaison d'entiers et de chaînes, des erreurs de conversion peuvent survenir.

Exemple de code

Considérez l'extrait de code suivant qui vise à concaténer et formater des nombres pour les poids et les dimensions :

ALTER FUNCTION [dbo].[ActualWeightDIMS]
(
    @ActualWeight int,
    @Actual_Dims_Lenght int,
    @Actual_Dims_Width int,
    @Actual_Dims_Height int
)
RETURNS varchar(50)
AS
BEGIN

DECLARE @ActualWeightDIMS varchar(50);
--Actual Weight
     IF (@ActualWeight is not null) 
          SET @ActualWeightDIMS = @ActualWeight;
--Actual DIMS
     IF (@Actual_Dims_Lenght is not null) AND 
          (@Actual_Dims_Width is not null) AND (@Actual_Dims_Height is not null)
          SET @ActualWeightDIMS= @Actual_Dims_Lenght + 'x' + @Actual_Dims_Width + 'x' + @Actual_Dims_Height;


     RETURN(@ActualWeightDIMS);

END
Copier après la connexion

Erreur rencontrée

Lors de l'utilisation de la fonction, une erreur se produit : "La conversion a échoué lors de la conversion la valeur varchar 'x' au type de données int." Cela se produit lors de la concaténation d'entiers sans les convertir explicitement en chaînes.

Solution

Pour résoudre l'erreur, convertissez explicitement les paramètres entiers en VARCHAR avant la concaténation :

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))
Copier après la connexion

Ceci garantit que les paramètres sont traités comme des chaînes, permettant leur concaténation avec le délimiteur 'x'.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal