2014-12-18 3 views
1

작은 소수 (0 < x < 10)의 힘을 4.5로 올릴 필요가있는 Microsoft Azure에서 SQLServer 쿼리를 작성하고 있습니다. 예 : 3.1^4.5SQLServer에서 10 진수로 올리기

이 같은 쿼리를 작성했습니다 : 그것은 기본 참조 않다면 잘 모르겠어요

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

:

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

그리고 다음과 같은 오류를 받고 있어요 (6 - WebRating) 또는 지수 (4.5),하지만 어느 쪽이든, 나는 SQLServer 에서이 일을하는 방법을 모르겠습니다. Excel에서 작동 :

답변

5

대신 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

좋은 측정을 위해, 그것은 언급 할 가치가있다 '^'는 비트 단위 배타적 또는 연산자이며 지수가 아닙니다. –

+0

@GordonLinoff 아, 네, 감사합니다. – Lamak

+0

빠른 답변 감사합니다! – Scott

0

explog 당신이 a^b 있습니다

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