回答編集履歴

3

修正

2018/03/05 13:34

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -1,14 +1,10 @@
1
- CSVとはせず、textで1行1項目として取り込んだ後に、加工するしかないかと思います
1
+ CSVとはせず、textで1行1項目として取り込んだ後に、加工するのはどうでょうか。
2
2
 
3
3
 
4
4
 
5
- 一旦仮テーブルに取り込んで置いて、その後配列として分解して本来のテーブルに挿入
5
+ 一旦仮テーブルに取り込んで置いて、その後配列として分解して本来のテーブルに挿入
6
6
 
7
- (string_to_array([カラム],','))[添え字]
8
7
 
9
- 上記のような記述で追加すれば良いかと。
10
-
11
- ※添え字に該当するものが無い場合はNullになる
12
8
 
13
9
  ```SQL
14
10
 
@@ -32,4 +28,6 @@
32
28
 
33
29
  from test
34
30
 
31
+ --※添え字に該当するものが無い場合はNullになる
32
+
35
33
  ```

2

追記

2018/03/05 13:34

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -4,8 +4,32 @@
4
4
 
5
5
  一旦仮テーブルに取り込んで置いて、その後配列として分解して本来のテーブルに挿入
6
6
 
7
- ```(string_to_array([カラム],','))[添え字]```
7
+ (string_to_array([カラム],','))[添え字]
8
8
 
9
9
  上記のような記述で追加すれば良いかと。
10
10
 
11
11
  ※添え字に該当するものが無い場合はNullになる
12
+
13
+ ```SQL
14
+
15
+ CREATE TABLE test3 (id int, length int, col1 text, col2 text, col3 text);
16
+
17
+ CREATE temp TABLE test (item text) on commit drop;
18
+
19
+ COPY test FROM '/data.csv' WITH text;
20
+
21
+ insert into test3
22
+
23
+ select string_to_array(item ,','))[1]::int -- id
24
+
25
+ , string_to_array(item ,','))[2]::int -- length
26
+
27
+ , string_to_array(item ,','))[3] -- col1
28
+
29
+ , string_to_array(item ,','))[4] -- col2
30
+
31
+ , string_to_array(item ,','))[5] -- col3
32
+
33
+ from test
34
+
35
+ ```

1

修正

2018/03/05 13:00

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -2,8 +2,10 @@
2
2
 
3
3
 
4
4
 
5
- レイアウトなかは、
5
+ 一旦仮テーブルに取り込んで置いて、そ後配列として分解して本来テーブルに挿入
6
6
 
7
- ```array_length(string_to_array([カラム],','),1)```
7
+ ```(string_to_array([カラム],','))[添え字]```
8
8
 
9
- どとして、項目数判断る等が考えらます
9
+ 上記のよう記述追加すれば良いかと
10
+
11
+ ※添え字に該当するものが無い場合はNullになる