2012.
09.
19
20:07:28
DECODE関数ではNULL=NULLの評価はできる。
CASE式の場合、WHEN句でIS NULLを使わないと駄目。
らしい。
つまりどーゆーこと(--?
DECODE関数の場合は、特にNULLとか気にせず
DECODE(COL1, NULL, "NULLだよ","NULLじゃないよ")
と書ける。
CASE式の場合は……って、前提としてCASE式には
「単純CASE式」と「検索CASE式」があって、
書式が微妙に違うのだそーな。
単純CASE式の書き方はこんなんφ(--)
CASE [値]
WHEN [条件1] THEN [返却値1]
WHEN [条件2] THEN [返却値2]
ELSE [返却値default]
END
CASE COL1
WHEN 1 THEN 'one'
WHEN 2 THEN 'two'
ELSE 'else'
END
一方検索CASE式はこんなんφ(--)
CASE
WHEN [条件1] THEN [返却値1]
WHEN [条件2] THEN [返却値2]
ELSE [返却値default]
END
CASE
WHEN COL1 = 1 THEN 'one'
WHEN COL1 = 2 THEN 'two'
ELSE 'else'
END
[値]がなくて好きに条件書ける感じ。
CASE式でNULLを扱う場合は「検索CASE式」の方を使って
CASE
WHEN COL1 IS NULL THEN "NULLだよ"
ELSE "NULLじゃないよ"
END
と書かないといけないんですってさ。
どこの世界もNULLの扱いは注意が必要っすね(;´A`)
CASE式の場合、WHEN句でIS NULLを使わないと駄目。
らしい。
つまりどーゆーこと(--?
DECODE関数の場合は、特にNULLとか気にせず
DECODE(COL1, NULL, "NULLだよ","NULLじゃないよ")
と書ける。
CASE式の場合は……って、前提としてCASE式には
「単純CASE式」と「検索CASE式」があって、
書式が微妙に違うのだそーな。
単純CASE式の書き方はこんなんφ(--)
CASE [値]
WHEN [条件1] THEN [返却値1]
WHEN [条件2] THEN [返却値2]
ELSE [返却値default]
END
CASE COL1
WHEN 1 THEN 'one'
WHEN 2 THEN 'two'
ELSE 'else'
END
一方検索CASE式はこんなんφ(--)
CASE
WHEN [条件1] THEN [返却値1]
WHEN [条件2] THEN [返却値2]
ELSE [返却値default]
END
CASE
WHEN COL1 = 1 THEN 'one'
WHEN COL1 = 2 THEN 'two'
ELSE 'else'
END
[値]がなくて好きに条件書ける感じ。
CASE式でNULLを扱う場合は「検索CASE式」の方を使って
CASE
WHEN COL1 IS NULL THEN "NULLだよ"
ELSE "NULLじゃないよ"
END
と書かないといけないんですってさ。
どこの世界もNULLの扱いは注意が必要っすね(;´A`)