Pular para o conteúdo

Uma função do PlaidCloud, disponível em todos os motores lakehouse. Divide o primeiro número pelo segundo. Quando o denominador é zero, ou qualquer um dos lados é NULL, o resultado é o terceiro valor; indique None para obter NULL. No Lakehouse v1, os três argumentos são obrigatórios. Ambos os lados são primeiro convertidos para DECIMAL(38, 10), pelo que as colunas de números inteiros são divididas sem truncamento.

func.safe_divide(<numerator>, <denominator>, <divide_by_zero_value>)
func.safe_divide(table.revenue, table.units, 0)
| revenue | units | safe_divide |
|---------|-------|-------------|
| 100 | 8 | 12.5 |
| 100 | 0 | 0 |
| 100 | NULL | 0 |
func.safe_divide(table.revenue, table.units, None)
| revenue | units | safe_divide |
|---------|-------|-------------|
| 100 | 8 | 12.5 |
| 100 | 0 | NULL |

Não existe nenhuma função SQL com este nome. A expressão é compilada para:

COALESCE(CAST(<numerator> AS DECIMAL(38, 10)) / NULLIF(CAST(<denominator> AS DECIMAL(38, 10)), 0), <divide_by_zero_value>)