Sql server 在SQL中将数字提高到分数次幂

Sql server 在SQL中将数字提高到分数次幂,sql-server,Sql Server,在MS SQL中,我试图将一系列数字提高到小数(1/5)次方,但在应用到负基数时,我得到了一个“域错误” 这不应该是个问题,因为我正在提升到一个奇怪的动力根。此外,我能够在Excel中进行计算 有人能就MS SQL是否不支持将负幂提升为分数根发表评论吗?将负基提升为分数幂将导致SQL Server不支持的复数 您可以将负基数提升为整数幂: SELECT POWER(-3, 3) 或将正基转化为分数次幂: SELECT POWER(9, 1.5) 我猜你的最后一句话是对的,因为MySql和

在MS SQL中,我试图将一系列数字提高到小数(1/5)次方,但在应用到负基数时,我得到了一个“域错误”

这不应该是个问题,因为我正在提升到一个奇怪的动力根。此外,我能够在Excel中进行计算


有人能就MS SQL是否不支持将负幂提升为分数根发表评论吗?

将负基提升为分数幂将导致SQL Server不支持的复数

您可以将负基数提升为整数幂:

SELECT  POWER(-3, 3)
或将正基转化为分数次幂:

SELECT  POWER(9, 1.5)

我猜你的最后一句话是对的,因为MySql和Oracle就是这样

编辑


对所有人来说,这样做会产生复数:将数字提高到1/3就像是一个立方根,它不会返回复数。。。所以提高到1/5,1/7。。。也不会

当基数为负数且幂为分数且分母为奇数时,可以将(-base)提高到(分数幂),然后取结果的负数

换句话说,SQL Server根本不支持将负基数提升为分数幂


正确地说,我应该补充。

MSSQL 2000的文档表明这是完全正确的:。你真的是说你在尝试用复数进行计算吗?这不是决定性的吗?你还需要什么?看起来你必须解决这个问题,因为在这里你不需要将异能提升到根:你要将基础提升到异能,然后拔出根。你的意思是“将负基数提高到分数次幂”?但对于奇数根,它们不会。-27的立方根是-3@Martin:剩下的唯一问题是提供精确的
1/3
作为
POWER
的参数@Martin:27的立方根实际上是-3(实际上是三个立方根中的一个)。但是幂(-27,1/3)与假想的
根(-27,3)
不同。由于SQL Server不支持小数,因此
1/3
将是一个浮点数,类似于
0.3333333
。因此,
POWER(-27,0.3333333)
不受支持,是吗?是的。同意这是问题的核心@马丁:还要注意的是,
-3
只是
-27
的三个立方根中的一个,另外两个是复杂的。他们为什么不支持它呢?我想取可能为负值的输入的立方根。这不是一个复杂的(ar+bi)数字——为什么要混淆这个问题呢。根已定义。@ColinMac根已定义,是。请记住,每个数字有3个立方根。其中两个是复杂的。请注意,我声明SQL Server不允许提升到分数幂。它只允许提升到float类型的幂,所以没有简单的方法来允许负基数。