回答編集履歴

2

例に誤りがあったので修正

2016/04/12 05:21

投稿

kutsulog
kutsulog

スコア985

test CHANGED
@@ -2,6 +2,62 @@
2
2
 
3
3
  SUMはグループ関数なのでデータがすべてない時でも集約結果をNVLすると値を設定できますが、
4
4
 
5
- 単純なカラムの場合はデータが存在しない場合はNVLしてもNULLのままです
5
+ 単純なカラムの場合はデータが存在しない場合はNVLしてもデータがないで値は設定されせん
6
+
7
+ (集約しない場合はNULLであるというデータもない)
6
8
 
7
9
 
10
+
11
+ 例)
12
+
13
+ テーブル名:TBL
14
+
15
+ ID VAL
16
+
17
+ --- ----
18
+
19
+ 1 2
20
+
21
+
22
+
23
+ SELECT
24
+
25
+ NVL(VAL, 0) A
26
+
27
+ FROM TBL
28
+
29
+ WHERE ID = 0
30
+
31
+
32
+
33
+ 結果:
34
+
35
+ A
36
+
37
+ ---
38
+
39
+ (データなし)
40
+
41
+
42
+
43
+ SELECT
44
+
45
+ NVL(SUM(VAL), 0) B
46
+
47
+ FROM TBL
48
+
49
+ WHERE ID = 0
50
+
51
+
52
+
53
+ 結果
54
+
55
+ B
56
+
57
+ ---
58
+
59
+ 0
60
+
61
+
62
+
63
+

1

例が間違っていたので削除

2016/04/12 05:21

投稿

kutsulog
kutsulog

スコア985

test CHANGED
@@ -5,33 +5,3 @@
5
5
  単純なカラムの場合はデータが存在しない場合はNVLしてもNULLのままです。
6
6
 
7
7
 
8
-
9
- 例)
10
-
11
- テーブル名:Tbl
12
-
13
- ID VAL
14
-
15
- -- ------
16
-
17
- 1 2
18
-
19
-
20
-
21
- SELECT
22
-
23
- NVL(VAL, 0) A
24
-
25
- , NVL(SUM(VAL), 0) B
26
-
27
- FROM TBL
28
-
29
- WHERE ID = 0
30
-
31
-
32
-
33
- 結果
34
-
35
- A:NULL
36
-
37
- B:0