我有一个查询可能导致负平方根,从而导致错误。我在用bigquery。如果ide de power()函数小于0,有没有办法将结果转换为0?
我的问题是:
UPDATE `table` SET
SW_FERTL = CASE
WHEN POR_CLEAN < 0.04 THEN 1
WHEN (1/((rho_matrix-RHOB)/(rho_matrix-rho_mud_filt)))*POWER(((RW/ILD)+(POWER((0.3*VSHALE/2), 2)-(0.3*VSHALE/2))), 0.5) > 1 THEN 1
ELSE (1/((rho_matrix-RHOB)/(rho_matrix-rho_mud_filt)))*POWER(((RW/ILD)+(POWER((0.3*VSHALE/2), 2)-(0.3*VSHALE/2))), 0.5)
END
WHERE DEPTH_M IS NOT NULL
负平方根可以发生在这里:
POWER(((RW/ILD)+(POWER((0.3*VSHALE/2), 2)-(0.3*VSHALE/2))), 0.5)
所以,如果
((RW/ILD)+(POWER((0.3*VSHALE/2), 2)-(0.3*VSHALE/2)))
小于零,我想改为设置为零。
有可能这样做吗?
提前谢谢!
2条答案
按热度按时间plupiseo1#
你可以用
GREATEST()
:z3yyvxxp2#
在许多(如果不是大多数)实际情况下,您需要区分零的来源
power(-4, .5)
与。power(0, .5)
所以,你可以考虑下面的方法以上回报
NULL
如果是否定论点