標準 SQL の条件式

条件式は、入力の評価順序に制約を課します。基本的に、これらは短絡を使用して左から右に評価され、選択された出力値のみを評価します。対照的に、正規関数へのすべての入力は関数の呼び出し前に評価されます。条件式での短絡は、エラー処理やパフォーマンス チューニングに利用できます。

構文 入力データ型 結果のデータ型 説明

CASE expr
  WHEN value THEN result
  [WHEN ...]
  [ELSE else_result]
  END
exprvalue: 任意の型 resultelse_result: 入力型のスーパータイプ expr と、連続する各 WHEN 句を比較し、この比較で TRUE が返される最初の結果を返します。残りの WHEN 句と else_result は評価されません。expr = value 比較ですべての WHEN 句に対して FALSE または NULL が返される場合、else_result が存在する場合はこれを返し、存在しない場合は NULL を返します。expr および value 式は共通のスーパータイプに暗黙的に強制型変換できる必要があります。等価比較は強制型変換された値に対して行われます。result および else_result 式は共通のスーパータイプに強制的に型変換できる必要があります。

CASE
  WHEN cond1 THEN result
  [WHEN cond2...]
  [ELSE else_result]
  END
cond: ブール値 resultelse_result: 入力型のスーパータイプ 連続する各 WHEN 句の条件 cond を評価し、条件が TRUE になる最初の結果を返します。残りのすべての WHEN 句と else_result は評価されません。すべての条件が FALSE または NULL である場合、else_result が存在する場合はこれを返し、存在しない場合は NULL を返します。result および else_result 式は共通のスーパータイプに暗黙的に強制型変換できる必要があります。
COALESCE(expr1, ..., exprN) 任意の形式 入力型のスーパータイプ 最初の非 NULL 式の値を返します。残りの式は評価されません。すべての入力式は共通のスーパータイプに暗黙的に強制型変換できる必要があります。
IF(cond, true_result, else_result) cond: ブール値 true_resultelse_result: 任意の型 cond が TRUE の場合、true_result を返します。それ以外の場合は else_result を返します。cond が TRUE の場合、else_result は評価されません。cond が FALSE または NULL の場合、true_result は評価されません。true_resultelse_result は共通のスーパータイプに強制型変換できる必要があります。
IFNULL(expr, null_result) 任意の形式 任意の型または入力型のスーパータイプ exprNULL の場合、null_result を返します。それ以外の場合は、expr を返します。exprNULL ではない場合、null_result は評価されません。exprnull_result は共通のスーパータイプに暗黙的に強制型変換できる必要があります。COALESCE(expr, null_result) と同義です。
NULLIF(expression, expression_to_match) 任意の型 T または T のサブタイプ 任意の型 T または T のサブタイプ NULL が TRUE の場合、expression = expression_to_match を返します。それ以外の場合、expression を返します。expressionexpression_to_match は共通のスーパータイプに暗黙的に強制型変換できる必要があります。等価比較は、強制型変換された値に対して行われます。
このページは役立ちましたか?評価をお願いいたします。

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

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