2016-05-26 8 views
0

テーブルからデータを取得できますが、以下のエラーが発生します。データ型の変換の問題

メッセージレベル24、レベル16、状態1、行1 のvarchar値 '0 0'をデータ型intに変換すると、変換に失敗しました。以下は

私は

enter image description here

+0

あなたはvarcharを持っています。それは3文字を含み、2つの '0 'はスペースで区切られています。これをintに変換する賢明な方法はありません。それはエラーがあなたに伝えていることです、そして、それは私達に言えることです。データが有効かどうか、なぜそれを 'int'に変換しようとしているのか、それが賢明な変換であれば、変換すると期待される実際の価値(必要に応じて、他の可能な入力と期待される出力を指定します)。私たちはあなたのためにそれらのことをすることはできません。 –

+0

このようなタイプのデータは、実表には存在しません。また、group by節のcase文を削除しても、同じことが正しく行われています。 – user3304978

+0

データの存在を否定することは、問題を修正するための健全な戦略ではありません。ヒントとして、データはおそらくcurrentbalance、highcredit_sanctionedamount、mob、amountoverdueまたはcustomeridのいずれかの列にあります。これらはint型への変換がクエリで明白な位置で使用されているものです。 –

答えて

0

'0 0' を使用していたコードは、整数ではありません。そのため、エラーが発生しています。 2つのゼロの間のスペースが無効な整数になっています。

+0

どのような行に正確にエラーが発生しているのですか? – user3304978

+0

ベーステーブルにこの種のデータはありません。コードをテキストとして追加します。 –

+0

group by節のcase文は、同じ部分が正しく動作しているため削除します。 – user3304978

0

varchar変数にフェッチします。その後、値をチェックして、int変数に再割り当てします。 例えば 宣言@tmpVal varchar型、 @intVal int型 ... (@tmpVal = '0')場合@tmpVal にフェッチ SET @intVal = 0 他 SET @intVal = CAST(@tmpVal intとして)

関連する問題