ホームページ >データベース >mysql チュートリアル >T-SQL で数値と文字列を正しく連結して数値をフォーマットする方法

T-SQL で数値と文字列を正しく連結して数値をフォーマットする方法

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-18 17:33:14388ブラウズ

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

T-SQL で数値と文字列を連結して数値をフォーマットする方法

シナリオ

整数値を連結する関数 ActualWeightDIMS を作成しました。書式設定された文字列として表示する実際の重量、長さ、幅、高さを表します。ただし、SELECT ステートメントを使用して関数を呼び出すと、varchar 'x' を整数に変換するときに変換失敗を示すエラーが表示されます。

問題

このエラーは、関数の整数の不正な連結が原因で発生します。文字列を含むパラメータ。 SQL Server は、文字列 ('x') への整数 (@Actual_Dims_Lenght) の加算を数学的演算として解釈し、変換エラーを引き起こします。

解決策

この問題を解決するには、次のようにします。整数パラメータを文字列と連結する前に、明示的に 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))

整数パラメーターを VARCHAR にキャストすると、操作が文字列連結として扱われるようになり、目的の形式の出力が得られます。

追加考慮事項

ユーザーは ASP.net ページで重量または寸法のいずれかのみを選択できると述べました。この検証を SQL 側で処理する必要があるかどうかを尋ねました。厳密に必要というわけではありませんが、追加の安全層を提供できます。データベースに CHECK 制約を追加して、ユーザーが寸法を選択するときに 3 つの寸法値 (長さ、幅、高さ) がすべて NULL 以外になるようにすることができます。これにより、関数が間違った結果や不完全な結果を返すのを防ぐことができます。

以上がT-SQL で数値と文字列を正しく連結して数値をフォーマットする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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