2010年07月16日

MySQL:フロー制御関数

IFNULL(expr1, expr2)

expr1 がNULLでない場合は expr1 を返し、それ以外の場合は expr2 を返す。
IFNULL() は、使用されているコンテキストに応じて、数値または文字列を返す。
SELECT IFNULL(1, 0); Enter

1
SELECT IFNULL(NULL, 10); Enter

10
SELECT IFNULL(1/0, 10); Enter

10
SELECT IFNULL(1/0, 'yes'); Enter

'yes'

NULLIF(expr1, expr2)

NULLIF()関数は、等しければNULLを返し、等しくなければ expr1 を返す。

expr1 = expr2 がTRUEの場合はNULLを返し、それ以外の場合は expr1 を返す。
これは CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END と同じ。
SELECT NULLIF(1, 1); Enter

NULL
SELECT NULLIF(1, 2); Enter

1

COALESCE(a, b, c)

coalesce()関数は、最初のNULLでないデータを返す。
SELECT COALESCE(NULL, 1); Enter

1
SELECT COALESCE(NULL, NULL, NULL); Enter

NULL
posted by ひつじ組長 at 00:57| Comment(0) | MySQL | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。