【问题标题】:Raise a decimal to a decimal power in SQLServer在 SQL Server 中将小数提高到小数的幂
【发布时间】:2015-02-17 10:13:05
【问题描述】:

我正在 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 :)

【问题讨论】:

    标签: sql sql-server exponentiation


    【解决方案1】:

    您需要改用POWER。而且,你不应该使用somecolumn = NULL,而应该使用somecolumn IS NULL

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

    【讨论】:

    • 为了更好地衡量,值得一提的是^ 是按位异或运算符,而不是求幂。
    • 感谢您的快速回答!
    【解决方案2】:

    一般来说,如果你有函数explog 你有a^b

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-09
      • 1970-01-01
      • 2015-11-17
      • 2018-12-14
      • 2016-02-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多