将整数与转换后的varchar T-SQL字段进行比较

时间:2011-12-12 02:26:31

标签: sql-server-2008 tsql int varchar

在我正在使用的数据库中,我在表中有一个数据类型为varchar(10)的字段。该字段可以为null,不必包含整数,但大部分时间都是如此。我将查询中每次迭代的WHERE子句中此字段的值与整数值进行比较。小数点右边必须至少有一个数字,并且最多可以有2个小数位,但大多数时候会有1. 0.00如果比较为0则可以符合条件,但0不符合条件,因为它不符合它后面有一个小数。什么是最安全的公式,以便我只考虑非空双值?

假设我的表中有这些值:

NULL
2.49
2.0
2
2.1
2.4

我只希望这些在这个表达式中将这些值视为真:
2.49
2.0
2.1
2.4

这是一个开始..我没有想到NULL或小数情况..

AND CONVERT(INT,fieldname.sortorder)= 2

1 个答案:

答案 0 :(得分:1)

添加其他条件以进行字符串比较。

AND fieldname.sortorder LIKE '%[0-9].[0-9]%'
AND CONVERT(INT, fieldname.sortorder)= 2