回答編集履歴

2

WITH句を使わないSELECTを追加

2018/03/13 19:44

投稿

Orlofsky
Orlofsky

スコア16415

test CHANGED
@@ -29,6 +29,64 @@
29
29
  ```
30
30
 
31
31
 
32
+
33
+ WITH句を使わないSELECT
34
+
35
+ ```SQL
36
+
37
+ SELECT
38
+
39
+ LY.YYYYMM
40
+
41
+ , S.STORE_CD
42
+
43
+ , S.STORE_NAME
44
+
45
+ FROM(
46
+
47
+ SELECT
48
+
49
+ CASE
50
+
51
+ WHEN ROWNUM > 3 THEN
52
+
53
+ '2017'
54
+
55
+ ELSE
56
+
57
+ '2018'
58
+
59
+ END
60
+
61
+ || TO_CHAR(A.FROM_MM + ROWNUM - 1, 'FM00') AS YYYYMM
62
+
63
+ FROM(
64
+
65
+ SELECT 1 AS FROM_MM
66
+
67
+ , 12 AS TO_MM
68
+
69
+ FROM DUAL
70
+
71
+ ) A
72
+
73
+ CONNECT BY LEVEL <= A.TO_MM - A.FROM_MM + 1
74
+
75
+ ) LY
76
+
77
+ NATURAL JOIN STORE S
78
+
79
+ ORDER BY
80
+
81
+ S.STORE_CD
82
+
83
+ , LY.YYYYMM ;
84
+
85
+ ```
86
+
87
+
88
+
89
+ WITH句を使ったSELECT
32
90
 
33
91
  ```SQL
34
92
 

1

訂正

2018/03/13 19:44

投稿

Orlofsky
Orlofsky

スコア16415

test CHANGED
@@ -38,31 +38,25 @@
38
38
 
39
39
  SELECT
40
40
 
41
- '2017' || TO_CHAR(A.FROM_MM + ROWNUM - 1, 'FM00') AS YYYYMM
41
+ CASE
42
42
 
43
- FROM(
43
+ WHEN ROWNUM > 3 THEN
44
44
 
45
- SELECT 4 AS FROM_MM
45
+ '2017'
46
46
 
47
- , 12 AS TO_MM
47
+ ELSE
48
48
 
49
- FROM DUAL
49
+ '2018'
50
50
 
51
- ) A
51
+ END
52
52
 
53
- CONNECT BY LEVEL <= A.TO_MM - A.FROM_MM + 1
54
-
55
- UNION ALL
56
-
57
- SELECT
58
-
59
- '2018' || TO_CHAR(A.FROM_MM + ROWNUM - 1, 'FM00') AS YYYYMM
53
+ || TO_CHAR(A.FROM_MM + ROWNUM - 1, 'FM00') AS YYYYMM
60
54
 
61
55
  FROM(
62
56
 
63
57
  SELECT 1 AS FROM_MM
64
58
 
65
- , 3 AS TO_MM
59
+ , 12 AS TO_MM
66
60
 
67
61
  FROM DUAL
68
62