回答編集履歴
4
推敲
answer
CHANGED
@@ -23,4 +23,6 @@
|
|
23
23
|
[NULLIF](https://docs.oracle.com/cd/E96517_01/sqlrf/NULLIF.html#GUID-445FC268-7FFA-4850-98C9-D53D88AB2405)
|
24
24
|
> NULLIFは、expr1とexpr2を比較します。式が等しい場合、関数はNULLを返します。異なる場合は、expr1を戻します。**expr1には、リテラルNULLを指定できません。**
|
25
25
|
|
26
|
-
`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が返却されます。
|
26
|
+
`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が返却されます。
|
27
|
+
|
28
|
+
※その設問は**NULLIF**の「expr1には、リテラルNULLを指定できません。」を正しく理解しているかについてですから、リファレンスなどの読み込みが不足しているという事です。
|
3
追記
answer
CHANGED
@@ -21,4 +21,6 @@
|
|
21
21
|
`NULLIFの式1にNULL値を指定するとエラーになる`
|
22
22
|
これは、`NULLIF(Null,min_price)`のようにリテラルのNUllを指定した場合で、`NULLIF(list_price,min_price)`の場合はエラーにはなりません。
|
23
23
|
[NULLIF](https://docs.oracle.com/cd/E96517_01/sqlrf/NULLIF.html#GUID-445FC268-7FFA-4850-98C9-D53D88AB2405)
|
24
|
-
> NULLIFは、expr1とexpr2を比較します。式が等しい場合、関数はNULLを返します。異なる場合は、expr1を戻します。**expr1には、リテラルNULLを指定できません。**
|
24
|
+
> NULLIFは、expr1とexpr2を比較します。式が等しい場合、関数はNULLを返します。異なる場合は、expr1を戻します。**expr1には、リテラルNULLを指定できません。**
|
25
|
+
|
26
|
+
`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
推敲
answer
CHANGED
@@ -16,11 +16,9 @@
|
|
16
16
|
> 2:LIST_PRICE列にNULL値が含まれている場合、0が表示される
|
17
17
|
>
|
18
18
|
> とあり答えは2なります。
|
19
|
-
> NULLIFの式1にNULL値を指定するとエラーになるはずなのに何故
|
19
|
+
> NULLIFの式1にNULL値を指定するとエラーになるはずなのに何故0が表示されるのでしょうか?
|
20
|
-
> 0が表示されるのでしょうか?
|
21
20
|
|
22
|
-
|
21
|
+
`NULLIFの式1にNULL値を指定するとエラーになる`
|
23
|
-
|
24
|
-
これは、`NULLIF(Null,min_price)`のように
|
22
|
+
これは、`NULLIF(Null,min_price)`のようにリテラルのNUllを指定した場合で、`NULLIF(list_price,min_price)`の場合はエラーにはなりません。
|
25
23
|
[NULLIF](https://docs.oracle.com/cd/E96517_01/sqlrf/NULLIF.html#GUID-445FC268-7FFA-4850-98C9-D53D88AB2405)
|
26
24
|
> NULLIFは、expr1とexpr2を比較します。式が等しい場合、関数はNULLを返します。異なる場合は、expr1を戻します。**expr1には、リテラルNULLを指定できません。**
|
1
追記
answer
CHANGED
@@ -8,4 +8,19 @@
|
|
8
8
|
|
9
9
|
第一引数にNULLを指定するとエラーになります。
|
10
10
|
|
11
|
-
使い勝手が良いのはCASE式でしょうね。
|
11
|
+
使い勝手が良いのはCASE式でしょうね。
|
12
|
+
|
13
|
+
追記
|
14
|
+
--
|
15
|
+
> 1:LIST_PRICE列にNULL値が含まれている場合、エラーになる
|
16
|
+
> 2:LIST_PRICE列にNULL値が含まれている場合、0が表示される
|
17
|
+
>
|
18
|
+
> とあり答えは2なります。
|
19
|
+
> NULLIFの式1にNULL値を指定するとエラーになるはずなのに何故
|
20
|
+
> 0が表示されるのでしょうか?
|
21
|
+
|
22
|
+
> NULLIFの式1にNULL値を指定するとエラーになる
|
23
|
+
|
24
|
+
これは、`NULLIF(Null,min_price)`のように直接NUllを指定した場合で、`NULLIF(list_price,min_price)`の場合はエラーにはなりません。
|
25
|
+
[NULLIF](https://docs.oracle.com/cd/E96517_01/sqlrf/NULLIF.html#GUID-445FC268-7FFA-4850-98C9-D53D88AB2405)
|
26
|
+
> NULLIFは、expr1とexpr2を比較します。式が等しい場合、関数はNULLを返します。異なる場合は、expr1を戻します。**expr1には、リテラルNULLを指定できません。**
|