0

SQL Server 2008 和 Crystal Reports XI

我不确定为什么我不能转换这些值。我试过 cast 和 convert 都导致相同的错误。此列最初确实包含字母数字值,但在我的主要查询将值插入临时表后,那里只有数字。

转换

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 中?

4

1 回答 1

0

对此的答案是在 varchar 列中有一个隐藏的回车,所以我使用了:

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

并且能够毫无困难地转换它。

于 2013-08-15T18:02:49.370 回答