回答編集履歴

2

加筆修正

2017/07/20 07:15

投稿

退会済みユーザー
test CHANGED
@@ -39,3 +39,27 @@
39
39
  改めてcase~end一括りにつける名前なのか、
40
40
 
41
41
  被らない名前にしてみてはいかがでしょうか。
42
+
43
+
44
+
45
+ ```
46
+
47
+ case when カラム3=カラム2 or カラム3 = カラム1 then null
48
+
49
+ else カラム4 end as カラムX,
50
+
51
+
52
+
53
+ case when カラム3=カラム2 or カラム3 = カラム1 then null
54
+
55
+ else カラム5 end as カラムY,
56
+
57
+
58
+
59
+ case when カラム3=カラム2 or カラム3 = カラム1 then null
60
+
61
+ else カラム6 end as カラムZ,
62
+
63
+ ```
64
+
65
+ とかかなぁ、手元にOracleないので確認できませんが。

1

見直し

2017/07/20 07:15

投稿

退会済みユーザー
test CHANGED
@@ -1 +1,41 @@
1
1
  case~endで一括りなので、列挙する場合は区切るために場面に応じて「,」を書いたり「and/or」を書いたりする必要があるのでは?
2
+
3
+
4
+
5
+ ---
6
+
7
+
8
+
9
+ ```
10
+
11
+ case when カラム3=カラム2 or カラム3 = カラム1 then null
12
+
13
+ else カラム4 end カラム4,
14
+
15
+
16
+
17
+ case when カラム3=カラム2 or カラム3 = カラム1 then null
18
+
19
+ else カラム5 end カラム5,
20
+
21
+
22
+
23
+ case when カラム3=カラム2 or カラム3 = カラム1 then null
24
+
25
+ else カラム6 end カラム6,
26
+
27
+ ```
28
+
29
+ ここよくわからない。
30
+
31
+ endのあとのカラム4とかは、このcase~end一括りにつける名前だよねぇ、
32
+
33
+ それをなぜelse句で参照しているのかが。
34
+
35
+
36
+
37
+ endのあとのカラム4がテーブルのカラム4なのか、
38
+
39
+ 改めてcase~end一括りにつける名前なのか、
40
+
41
+ 被らない名前にしてみてはいかがでしょうか。