SAFE_DIVIDE (Lakehouse v1)
Funkcja PlaidCloud dostępna w każdym silniku lakehouse. Dzieli pierwszą liczbę przez drugą. Gdy dzielnik wynosi zero lub którakolwiek strona ma wartość NULL, wynikiem jest trzecia wartość; przekaż None, aby uzyskać NULL. W Lakehouse v1 wymagane są wszystkie trzy argumenty. Obie strony są najpierw rzutowane na DECIMAL(38, 10), dzięki czemu kolumny całkowitoliczbowe dzielą się bez obcinania.
Składnia Analyze
Dział zatytułowany „Składnia Analyze”func.safe_divide(<numerator>, <denominator>, <divide_by_zero_value>)Przykłady Analyze
Dział zatytułowany „Przykłady 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 |Odpowiednik SQL
Dział zatytułowany „Odpowiednik SQL”Nie istnieje funkcja SQL o tej nazwie. Wyrażenie jest kompilowane do:
COALESCE(CAST(<numerator> AS DECIMAL(38, 10)) / NULLIF(CAST(<denominator> AS DECIMAL(38, 10)), 0), <divide_by_zero_value>)