標準 SQL の関数呼び出しルール

関数の表記内に特に明示的な指示がない限り、以下の規則はすべての関数に適用されます。

  • 数値型を受け入れる関数は、1 つのオペランドが浮動小数点値オペランドであり、他のオペランドが別の数値型である場合、両方のオペランドが FLOAT64 に変換されてから関数が評価されます。
  • オペランドが NULL の場合、結果は IS 演算子を除いて NULL となります。

  • タイムゾーンの影響を受ける関数(そのように関数の説明に示されています)の場合、タイムゾーンが指定されていなければ、デフォルトのタイムゾーンである UTC が使用されます。

SAFE. 接頭辞

構文:

SAFE.function_name()

説明

関数の先頭に SAFE. 接頭辞を付けると、エラーの代わりに NULL が返されます。SAFE. 接頭辞では、接頭辞が付いている関数自体のエラーが防止されるのみで、引数の式を評価するときに発生するエラーは防止されません。SAFE. 接頭辞では、範囲外の値を示すエラーなど、関数入力の値によって発生するエラーのみが防止されます。内部エラーやシステムエラーなどのその他のエラーは、依然として発生する可能性があります。エラーを返さない関数の出力には、SAFE. は影響を及ぼしません。エラーを返さない、RAND のような関数には、SAFE. は影響を及ぼしません。

+= などの演算子SAFE. 接頭辞をサポートしません。除算によるエラーを防ぐには、SAFE_DIVIDE を使用します。INARRAYUNNEST などの演算子は関数に似ていますが、SAFE. 接頭辞をサポートしません。CAST 関数と EXTRACT 関数も SAFE. 接頭辞をサポートしません。キャスティングのエラーを防ぐには、SAFE_CAST を使用します。

次に示す最初の例のように SUBSTR 関数を使用すると、通常はエラーが返されます。これは、この関数が負の値を持つ長さ引数をサポートしていないためです。ただし、SAFE. 接頭辞があるため、代わりに NULL が返されます。SUBSTR 関数の 2 番目の使用例では、想定される出力が提供され、SAFE. 接頭辞は影響を与えません。

SELECT SAFE.SUBSTR('foo', 0, -2) AS safe_output UNION ALL
SELECT SAFE.SUBSTR('bar', 0, 2) AS safe_output;

+-------------+
| safe_output |
+-------------+
| NULL        |
| ba          |
+-------------+

サポートされる関数

BigQuery では、エラーを発生させる可能性のあるほとんどのスカラー関数(STRING 関数数学関数DATE 関数DATETIME 関数TIMESTAMP 関数など)で SAFE. 接頭辞の使用がサポートされています。集計関数分析関数ユーザー定義関数での SAFE. 接頭辞の使用はサポートされていません。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。