回答編集履歴

2

sample

2018/03/29 04:28

投稿

yambejp
yambejp

スコア114897

test CHANGED
@@ -17,3 +17,53 @@
17
17
 
18
18
 
19
19
  上記、命題の意図と異なるようです。追加情報待ち
20
+
21
+
22
+
23
+ # 変換例
24
+
25
+ ```SQL
26
+
27
+ create table tbl(id int,val int);
28
+
29
+ ```
30
+
31
+ に対して
32
+
33
+ ```SQL
34
+
35
+ insert into tbl values(1,100,110,120),(2,200,210,220),(3,300,310,320);
36
+
37
+ ```
38
+
39
+ を突っ込んでエラーになるとき、こう変換するといけます
40
+
41
+ ```SQL
42
+
43
+ insert into tbl select id,val from (
44
+
45
+ select 1 as id,100,110 as val,120
46
+
47
+ union all select 2,200,210,220
48
+
49
+ union all select 3,300,310,320) as dummy;
50
+
51
+ ```
52
+
53
+ ※見やすいように改行してますが、実際にはしてもしなくてもいい
54
+
55
+
56
+
57
+ - 「values(」を「select id,val from (select 」に変換
58
+
59
+ - 「),(」を「 union all select 」に変換
60
+
61
+ - ケツに「 as dummy」(名前は何でもいい)を付ける;
62
+
63
+ - 1行目の取り出したいデータに名前をつける
64
+
65
+ 今回だと1列目のデータを「1」→「1 as id」、3列目のデータを「110」→「110 as val」
66
+
67
+ 取り込まないデータに関しては特に名前をつけなくてもよいし
68
+
69
+ 2行目以降のデータにも名前はいらない

1

調整

2018/03/29 04:28

投稿

yambejp
yambejp

スコア114897

test CHANGED
@@ -9,3 +9,11 @@
9
9
  ```
10
10
 
11
11
  としてください
12
+
13
+
14
+
15
+ # 追記
16
+
17
+
18
+
19
+ 上記、命題の意図と異なるようです。追加情報待ち