整数値を連結する関数 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 サイトの他の関連記事を参照してください。