0

SQL Server 2008 および Crystal Reports XI

値を変換できない理由が正確にはわかりません。キャストと変換を試しましたが、どちらも同じエラーになります。この列には最初は英数字の値が含まれていましたが、プライマリ クエリが一時テーブルに値を挿入した後、そこには数字しかありません。

変換

CASE WHEN ISNUMERIC(myfield) = 1 THEN CAST(myfield AS INT) ELSE 0 END

ゼロを返します。列のデータの例は次のとおりです。

65
89
151
175
210

明らかな何かが欠けていると確信していますが、それを理解することはできません。クリスタルレポートでは、次のものを正常に使用できました。

IF isnumeric({myfield}) then tonumber({myfield}) else 999 

それは問題なく正常に変換されます。SQL ではなく Crystal で機能するのはなぜですか?

4

1 に答える 1

0

これに対する答えは、varchar 列に非表示のキャリッジ リターンがあったため、以下を使用しました。

REPLACE(myfield, CHAR(13), ''),

問題なく変換できました。

于 2013-08-15T18:02:49.370 に答える