SAFE_DIVIDE (Lakehouse v1)
Uma função do PlaidCloud, disponível em todos os mecanismos de lakehouse. Divide o primeiro número pelo segundo. Quando o denominador é zero, ou qualquer um dos lados é NULL, o resultado é o terceiro valor; passe None para obter NULL. Os três argumentos são obrigatórios no Lakehouse v1. Os dois lados são convertidos primeiro para DECIMAL(38, 10), de modo que colunas de inteiros sejam 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 uma 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>)