ホームページ >データベース >mysql チュートリアル >T-SQL で数値と文字列を連結するときに変換エラーを回避するにはどうすればよいですか?

T-SQL で数値と文字列を連結するときに変換エラーを回避するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-17 10:32:26199ブラウズ

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

T-SQL で数値書式設定のために数値と文字列を連結する方法

問題の説明

T-SQL では、一般的なタスクは結合することです。数値と文字列を使用してフィールドをフォーマットします。たとえば、特定の単位を使用して重量や寸法を表示する必要がある場合があります。ただし、整数と文字列を組み合わせる場合、変換エラーが発生する可能性があります。

コード例

重量と寸法の数値を連結してフォーマットすることを目的とした次のコード スニペットを考えてみましょう。

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

エラーが発生しました

関数を使用すると、次のエラーが発生します:「変換時に変換に失敗しました」 varchar 値 'x' をデータ型 int に変換します。」これは、明示的に文字列に変換せずに整数を連結すると発生します。

解決策

エラーを解決するには、連結前に整数パラメータを VARCHAR に明示的にキャストします。

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))

これパラメータが文字列として扱われるようにし、「x」との連結を許可します。区切り文字。

以上がT-SQL で数値と文字列を連結するときに変換エラーを回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。