回答編集履歴

2

そのままにする部分が抜けていたので追加

2016/08/08 14:15

投稿

kutsulog
kutsulog

スコア985

test CHANGED
@@ -84,7 +84,11 @@
84
84
 
85
85
  SET
86
86
 
87
+ T1.ID = MID(T1.ID, 1, 1)
88
+
87
- T1.ID = MID('abcdefghijklmnopqrstuvwxyz', T2.cnt, 1)
89
+ + MID('abcdefghijklmnopqrstuvwxyz', T2.cnt, 1)
90
+
91
+ + MID(T1.ID, 3, 1)
88
92
 
89
93
  WHERE T1.ID = T2.ID
90
94
 
@@ -97,3 +101,13 @@
97
101
 
98
102
 
99
103
  UPDATEのFROM副問い合わせはすっかりSQLServerのノリで書いてましたf(^-^;
104
+
105
+
106
+
107
+ ---
108
+
109
+
110
+
111
+ 追記
112
+
113
+ そのまま残すべきところを忘れていたので追加しました

1

指摘を受けて修正

2016/08/08 14:14

投稿

kutsulog
kutsulog

スコア985

test CHANGED
@@ -35,3 +35,65 @@
35
35
 
36
36
 
37
37
  ```
38
+
39
+
40
+
41
+
42
+
43
+ ---
44
+
45
+
46
+
47
+ KotoriMaturiさんの指摘を受けて修正しました
48
+
49
+ (GROUP BYもぬけてましたし)
50
+
51
+
52
+
53
+ ```SQL
54
+
55
+ UPDATE
56
+
57
+ sampleTable T1
58
+
59
+ , (
60
+
61
+ SELECT
62
+
63
+ A.ID
64
+
65
+ , A.userID
66
+
67
+ , count(*) + 1 AS cnt
68
+
69
+ FROM sampleTable A
70
+
71
+ JOIN sampleTable B
72
+
73
+ ON A.ID = B.ID
74
+
75
+ AND A.userID > B.userID
76
+
77
+ GROUP BY
78
+
79
+ A.ID
80
+
81
+ , A.userID
82
+
83
+ ) T2
84
+
85
+ SET
86
+
87
+ T1.ID = MID('abcdefghijklmnopqrstuvwxyz', T2.cnt, 1)
88
+
89
+ WHERE T1.ID = T2.ID
90
+
91
+ AND T1.userID = T2.userID
92
+
93
+
94
+
95
+ ```
96
+
97
+
98
+
99
+ UPDATEのFROM副問い合わせはすっかりSQLServerのノリで書いてましたf(^-^;