我想写一个简单的查询。检查整列,如果列在点后包含一个值,例如(5.1,2.6,3.7,0.3等),则该值中仅加0.01
您可以将读取字段的方式更改为:
select convert(varchar,CONVERT(decimal(10,2),123.1))
如果该字段是字符串字段,则可以更新它:
update table set value = convert(varchar,CONVERT(decimal(10,2),value))
如果字段是十进制的,则不能在其后面存储零,并且必须添加尾随的1。
update table set value = CONVERT(decimal(10,1),value) + 0.01
where value == ROUND(value,1)
注意where语句,这样查询将只更新只有一个小数的行。
让我们尝试以下想法:
select my_value + ((ceil(my_value * 10) = (my_value * 10)) / 100)
from my_table
my_table
是您的值所在的表。my_value
是您尝试查询的值。my_value * 10
是整数,当且仅当该值在.
之后有一个位数时。如果数字为整数,则ceil(my_value * 10) = (my_value * 10)
为1,否则为0。因此,当我们需要加0.01时,我们得到一个1,而当我们需要保持原样时,我们获得一个0。因此,如果我们将结果除以100,并将其添加到my_value
,我们将获得所需的输出。