将varchar转换为整数

时间:2013-12-19 18:20:26

标签: sql varchar

我正在尝试计算Face列中0到25000之间的记录数。数据集将Face作为char(20),因此我需要在制作任何布尔表达式之前将其转换为整数。这是我的代码:

SELECT count(*)
FROM tablename
WHERE cast(face AS integer) > 0 and cast(face AS integer) <=25000;

我收到错误,说

  

将varchar值'0.0'转换为数据类型int时,转换失败。

Face列包含空值和“0.0”和“0.0000”

等记录

我在线查看并没有找到有关如何将varchar转换为整数的任何有用信息。帮助任何人?

2 个答案:

答案 0 :(得分:1)

如果您的列中包含小数点,则您的错误是尝试将其解释为整数:

select count(*)
from tablename
where cast(face AS float) > 0.0 and cast(face AS float) <= 25000.0

答案 1 :(得分:0)

Face始终保证是数字吗?希望这样或任何方法都不适合你。

由于您有十进制值,最好将其投射为float,然后进行比较:

SELECT count(*)
FROM tablename
WHERE cast(face AS float)> 0 and cast(face AS float) <=25000;