在SQLServer中将小数提升为十进制幂

时间:2014-12-18 15:11:25

标签: sql sql-server exponentiation

我在Microsoft Azure上编写SQLServer查询,我需要将小小数(0

我已经写了这样的查询:

case when a.avgRating = null then (6-r.WebRating)^4.5 else a.avgRating end AS avgRating

我收到以下错误:

Operand data type decimal is invalid for '^' operator.

我不确定它是指基础(6-WebRating)还是指数(4.5),但无论如何,我不确定如何在SQLServer中完成此操作。在Excel中工作,fwiw:)

2 个答案:

答案 0 :(得分:5)

您需要使用POWER代替。而且,您不应该使用somecolumn = NULLsomecolumn IS NULL

CASE 
    WHEN a.avgRating IS NULL THEN POWER(6-r.WebRating,4.5) 
    ELSE a.avgRating 
END AS avgRating

答案 1 :(得分:0)

一般情况下,如果您拥有explog函数,则a^b

a^b = exp(b * log(a))