我从另一个表中传递一系列double值,范围从-1到1.如果值是正数,我想使它与1之间的差值(即0.2会变成0.8)。如果价值是负数,我希望它现在是1以上的三角形负数(即0.2将是1.2)。SQL案例值切换
由于某些原因,当我这样做时,它会从上一个表中取值,并使它们符合第一个WHEN的条件(因此在此设置中,所有传入的值都被设置为正数,并打到第一个什么时候)。
为什么不能正常工作?
SELECT SnapshotDay
,SnapshotHour
,CASE
WHEN Delta > 0.0 THEN (1 - Delta)
WHEN Delta <= 0.0 THEN (abs(Delta) + 1)
END as Adjust
FROM #Difference
例子:
-0.00118341262814151 --> 0.998816587371859
0.00130811285278974 --> 0.99869188714721
请告诉我'delta'的数据类型? –
你的例子是你想要的结果还是不正确的结果? –
Double;这是不正确的 - 斯坦利的观察让我完全避免它。 – RoyalGoat