Aller au contenu

Fonction PlaidCloud, disponible sur tous les moteurs lakehouse. Divise le premier nombre par le second. Lorsque le dénominateur est nul, ou que l’un des deux côtés est NULL, le résultat est la troisième valeur ; passez None pour obtenir NULL. Les trois arguments sont obligatoires sur Lakehouse v1. Les deux côtés sont d’abord convertis en DECIMAL(38, 10), de sorte que les colonnes entières se divisent sans troncature.

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 |

Il n’existe aucune fonction SQL de ce nom. L’expression est compilée en :

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