Re: 問題ID: 19976

この質問の投稿一覧へ

なし Re: 問題ID: 19976

msg# 1.1
depth:
1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2017-12-5 9:53
quensan  長老   投稿数: 119
Oracleでは空文字('')はNULLとして扱われるみたいです。
問題のNVL2をさらにNVL2で囲むと、''を返す行はNULL値のようで、'NULLだよ'と出てきました。

SELECT employee_name, NVL2((NVL2(salary, salary + 10000, '')), 'NULLじゃない', 'NULLだよ') FROM employees;

ちなみに、引数2と引数3は暗黙の型変換が可能な場合はエラーになりません。('AAA'はだめだけど、'123'はOK)
ただし、第2引数と第3引数は同じデータ型でなければなりません(暗黙的なデータ変換が行われる場合はエラーとなりません)。異なるデータ型を返す式を指定するとエラーとなります。

投稿ツリー

  >フォーラム検索へ


Copyright (c) 2020 Ping-t All rights reserved.