2011-04-29 33 views
2

我試圖在MS SQL中提出一系列小數(1/5)的數字,但在應用到負數基數時出現'域錯誤'。將數字提高到SQL中的小數次方

這不應該成爲一個問題,因爲我正在升級到一個奇怪的根。此外,我可以在Excel中進行計算。

任何人都可以評論是否MS SQL根本不支持提升分數根的負面權力?

+0

MSSQL 2000的文檔暗示這是完全正常的:http://msdn.microsoft.com/en-us/library/aa276880(v=SQL.80).aspx。 – 2011-04-29 23:06:06

+0

你真的說你想用複數來計算嗎? – pavium 2011-04-29 23:06:19

+0

http://msdn.microsoft.com/en-us/library/aa276880(v=sql.80).aspx這不是最終的嗎?你還需要什麼? – 2011-04-29 23:06:29

回答

1

將基底提升爲分數時會產生一個複數,SQL Server不支持。

可以提高負基地打的整數次冪:

SELECT POWER(-3, 3) 

或正基成分數功率:

SELECT POWER(9, 1.5) 
+0

雖然他們不會有奇怪的根源。 -27的立方根是-3 – 2011-04-29 23:08:02

+0

@Martin:剩下的唯一問題是提供確切的'1/3'作爲'POWER'的參數。 – Quassnoi 2011-04-29 23:17:43

+0

@Martin:-27的立方根確實是-3(實際上是三個立方根)。但是「POWER(-27,1/3)」與虛擬的「ROOT(-27,3)」不同。由於小數不被SQL-Server支持,因此'1/3'將是一個浮點數,類似於'0.3333333'。所以'POWER(-27,0.3333333)'是正確的不被支持,是嗎? – 2011-04-29 23:22:20

1

我的猜測是你最後的說法是正確的,因爲它是MySql和Oracle的情況。

編輯

對大家說,這導致複數:提高一個數量1/3就像是一個立方根,不返回任何複數......所以提高到1/5,1/7 ...也不會。

0

當基數爲負數且冪爲分數且分母爲奇數時,可以將(基數)提高(小數),然後取結果的負數。

換句話說,MS SQL根本不支持將負數的底數提升到小數的機率

正確的,我應該補充。

相關問題