如果我的数字的前3位小数为0且数字以0开头,则数字= 0:
示例:
N = 0.0005677 => n = 0(0.00)
N = 0.000055664 => n = 0(0.00)
修改1:
以下是一个示例:
WHERE ((cc.ID = @ID) OR (@ID IS NULL))
AND ((cc.carTypeID = @CarTypeID) OR (@CarTypeID IS NULL))
AND cc.active = 1
AND lp.Latitude != 0 AND lp.Longitude != 0
第4行:所以在这个存储过程中它不会显示纬度= 0和经度= 0的行,我想在纬度和经度为例如0.000455或0.0000555时实现相同的目的。
P.S。:希望这能让我在第一次发布时清楚地感到遗憾。谢谢大家的回答。
编辑2:
您如何看待这种方法? :
WHERE ((cc.ID = @ID) OR (@ID IS NULL))
AND ((cc.carTypeID = @CarTypeID) OR (@CarTypeID IS NULL))
AND cc.active = 1
AND CONVERT(NUMERIC(6, 3), lp.Latitude) !=0 AND CONVERT(NUMERIC(6, 3), lp.Longitude) !=0
此函数看起来像预期的那样工作,可以用作更通用的方法。
你知道任何不利因素或为什么我不应该使用它?
答案 0 :(得分:1)
我想你想要这样的东西:
SELECT CASE WHEN @n < 0.001 THEN 0 ELSE @n END
任何小于0.001
的数字都以0
为整数部分,其小数部分以000
开头。
如果您希望以相同的方式处理负数,则可以将@n
替换为ABS(@n)
。
修改强>
您将查询的WHERE
子句表示为:
WHERE ((cc.ID = @ID) OR (@ID IS NULL))
AND ((cc.carTypeID = @CarTypeID) OR (@CarTypeID IS NULL))
AND cc.active = 1
AND lp.Latitude >= 0.001
AND lp.Longitude >= 0.001
上述不选择Latitude
或Longitude
,0.000455
的值,但将选择一个值0.00455
。
答案 1 :(得分:0)