SAFE_DIVIDE (Lakehouse v1)
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.
Sintaxe do Analyze
Seção intitulada “Sintaxe do Analyze”func.safe_divide(<numerator>, <denominator>, <divide_by_zero_value>)Exemplos do Analyze
Seção intitulada “Exemplos do Analyze”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 |Equivalente em SQL
Seção intitulada “Equivalente em SQL”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>)