回答編集履歴

4

推敲

2019/04/22 03:50

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -49,3 +49,7 @@
49
49
 
50
50
 
51
51
  `list_price`がNullの場合、`NULLIF(list_price,min_price)`はNUllを返却し、その結果を[NVL2](https://docs.oracle.com/cd/E96517_01/sqlrf/NVL2.html#GUID-414D6E81-9627-4163-8AC2-BD24E57742AE)の指定で0が返却されます。
52
+
53
+
54
+
55
+ ※その設問は**NULLIF**の「expr1には、リテラルNULLを指定できません。」を正しく理解しているかについてですから、リファレンスなどの読み込みが不足しているという事です。

3

追記

2019/04/22 03:50

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -45,3 +45,7 @@
45
45
  [NULLIF](https://docs.oracle.com/cd/E96517_01/sqlrf/NULLIF.html#GUID-445FC268-7FFA-4850-98C9-D53D88AB2405)
46
46
 
47
47
  > NULLIFは、expr1とexpr2を比較します。式が等しい場合、関数はNULLを返します。異なる場合は、expr1を戻します。**expr1には、リテラルNULLを指定できません。**
48
+
49
+
50
+
51
+ `list_price`がNullの場合、`NULLIF(list_price,min_price)`はNUllを返却し、その結果を[NVL2](https://docs.oracle.com/cd/E96517_01/sqlrf/NVL2.html#GUID-414D6E81-9627-4163-8AC2-BD24E57742AE)の指定で0が返却されます。

2

推敲

2019/04/22 03:45

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -34,17 +34,13 @@
34
34
 
35
35
  > とあり答えは2なります。
36
36
 
37
- > NULLIFの式1にNULL値を指定するとエラーになるはずなのに何故
37
+ > NULLIFの式1にNULL値を指定するとエラーになるはずなのに何故0が表示されるのでしょうか?
38
-
39
- > 0が表示されるのでしょうか?
40
38
 
41
39
 
42
40
 
43
- > NULLIFの式1にNULL値を指定するとエラーになる
41
+ `NULLIFの式1にNULL値を指定するとエラーになる`
44
42
 
45
-
46
-
47
- これは、`NULLIF(Null,min_price)`のように直接NUllを指定した場合で、`NULLIF(list_price,min_price)`の場合はエラーにはなりません。
43
+ これは、`NULLIF(Null,min_price)`のようにリテラルのNUllを指定した場合で、`NULLIF(list_price,min_price)`の場合はエラーにはなりません。
48
44
 
49
45
  [NULLIF](https://docs.oracle.com/cd/E96517_01/sqlrf/NULLIF.html#GUID-445FC268-7FFA-4850-98C9-D53D88AB2405)
50
46
 

1

追記

2019/04/22 03:38

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -19,3 +19,33 @@
19
19
 
20
20
 
21
21
  使い勝手が良いのはCASE式でしょうね。
22
+
23
+
24
+
25
+ 追記
26
+
27
+ --
28
+
29
+ > 1:LIST_PRICE列にNULL値が含まれている場合、エラーになる
30
+
31
+ > 2:LIST_PRICE列にNULL値が含まれている場合、0が表示される
32
+
33
+ >
34
+
35
+ > とあり答えは2なります。
36
+
37
+ > NULLIFの式1にNULL値を指定するとエラーになるはずなのに何故
38
+
39
+ > 0が表示されるのでしょうか?
40
+
41
+
42
+
43
+ > NULLIFの式1にNULL値を指定するとエラーになる
44
+
45
+
46
+
47
+ これは、`NULLIF(Null,min_price)`のように直接NUllを指定した場合で、`NULLIF(list_price,min_price)`の場合はエラーにはなりません。
48
+
49
+ [NULLIF](https://docs.oracle.com/cd/E96517_01/sqlrf/NULLIF.html#GUID-445FC268-7FFA-4850-98C9-D53D88AB2405)
50
+
51
+ > NULLIFは、expr1とexpr2を比較します。式が等しい場合、関数はNULLを返します。異なる場合は、expr1を戻します。**expr1には、リテラルNULLを指定できません。**