teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

4

推敲

2019/04/22 03:50

投稿

sazi
sazi

スコア25430

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

追記

2019/04/22 03:50

投稿

sazi
sazi

スコア25430

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

推敲

2019/04/22 03:45

投稿

sazi
sazi

スコア25430

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
- > NULLIFの式1にNULL値を指定するとエラーになる
21
+ `NULLIFの式1にNULL値を指定するとエラーになる`
23
-
24
- これは、`NULLIF(Null,min_price)`のように直接NUllを指定した場合で、`NULLIF(list_price,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

追記

2019/04/22 03:38

投稿

sazi
sazi

スコア25430

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を指定できません。**