コンテンツにスキップ

すべての Lakehouse エンジンで使用できる PlaidCloud の関数です。最初の数を 2 番目の数で割ります。分母が 0 の場合、またはいずれかの側が NULL の場合、結果は 3 番目の値になります。NULL を返したい場合は None を渡します。Lakehouse v1 では 3 つの引数がすべて必須です。両側は最初に DECIMAL(38, 10) にキャストされるため、整数列でも切り捨てなしで割り算できます。

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 |

この名前の SQL 関数はありません。式は次のようにコンパイルされます。

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