質問編集履歴

1

説明の追加

2016/09/21 02:39

投稿

syncrock
syncrock

スコア209

test CHANGED
File without changes
test CHANGED
@@ -31,3 +31,55 @@
31
31
  複数の値を返すfunctionとなるとどーしてもtypeの型で返してしまうのでダメですよね・・・?
32
32
 
33
33
  何かいい方法ないでしょうか。
34
+
35
+
36
+
37
+ -------追記---------
38
+
39
+ ```oracle
40
+
41
+ create table test1
42
+
43
+ (
44
+
45
+ item1 varchar2(10),
46
+
47
+ item2 varchar2(10),
48
+
49
+ item3 int
50
+
51
+ )
52
+
53
+ insert into test1 VALUES('A','2015',10)
54
+
55
+ insert into test1 VALUES('A','2015',11)
56
+
57
+ insert into test1 VALUES('A','2016',12)
58
+
59
+ insert into test1 VALUES('A','2016',13)
60
+
61
+ insert into test1 VALUES('B','2015',20)
62
+
63
+ insert into test1 VALUES('B','2015',21)
64
+
65
+ insert into test1 VALUES('B','2016',22)
66
+
67
+ insert into test1 VALUES('B','2016',23)
68
+
69
+ ```
70
+
71
+ 例えばこのようなデータがあったとき。
72
+
73
+ やりたいことをSELECTで記載すると以下のようになります。
74
+
75
+ ```oracle
76
+
77
+ select *
78
+
79
+ from test1
80
+
81
+ pivot (sum(item3) for item2 in('2015','2016'))
82
+
83
+ ```
84
+
85
+ この時にinの中の文字列を直書きではなくしたいです。