現在どうにかしてCSV fileのある一定の行と列を除いて
SQLへimport出来ないかと困っています。
内容は:
Excelで記入欄を作り他の人に記入してもらい
記入欄に記入してもらった情報を
反映させたいSQLのテーブル反映させたい。
環境
Win全般
dbisql
Notepadに書いたtest-sql構文です
--## test-import
insert into test.test_def(obj_num, name_1, name_2, etc_1, etc_2)
--##ここで指定したいSQLテーブルを指定し
LOAD DATA INFILE 'd:\\test\\test.csv'
--##ここで読み込ませたいCSVファイルを指定し
FIELDS TERMINATED BY ',',
LINES TERMINATED BY '\r\n'
--##ここでCSVの形式を認識させ
with(a,"b" filler,
・・・・と
この辺で行き詰っています。。。
列1と行Aには入力してもらいたい説明を入力したいです。
(importしたくない列と行になります)
列2以降の行Bから行Gまでの5つの情報をimportしたいという状況です。
(列3、列4と次々B、C、D、E、F、Gに入力してもらう)
状況が解り難かったらすみません。
よろしくお願いします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
インポートする時の指定方法はわかりませんが、
ExcelでCSVファイルとして保存する時に、
1行目とA列を削除して出力するのはどうでしょうか。
削除するのが問題になるようでしたら、
インポートしたい範囲だけを保存するようなマクロを組まれたらいいと思います。
dell_OKさん、ご回答ありがとうございます。
"a" filler,と同じように列の"1" filler,のような事が出来れば良いのですが。。。
インポートしたい範囲だけを保存するようなマクロの組み方
が解らないので勉強しようと思います。
ありがとうございました。
No.2
- 回答日時:
なるほど。
ちょっと検索してみました。
http://dev.mysql.com/doc/refman/4.1/ja/load-data …
http://dev.mysql.com/doc/refman/5.1/ja/load-data …
「IGNORE number LINES オプションは、ファイルの先頭にある行を無視させる目的で使用します。
たとえば、次のように、IGNORE 1 LINES と指定することによって、カラム名が含まれた最初のヘッダ行(1 行)をスキップさせることができます。」
とあります。
質問者様がどのようにご理解されているのかわかりませんが、
一般的にExcelで、
画面上部に「A」「B」「C」と横に並んでいるものを縦に向かって見る方向を「列」と言い、
画面左部に「1」「2」「3」と縦に並んでいるものを横に向かって見る方向を「行」と言います。
一番左上のセルは「1行目のA列」と呼びます。
※数字は行、アルファベットは列です。
「IGNORE 1 LINES」では、この1行目を読み込みません。
fillerと言うのが、列を読み込まないものだと思うのですが、
上記URL中にはかかれていなかったので、私にはわかりません。
どうでしょうか。
No.3
- 回答日時:
1.excel で先に必要データ部分のみ選択出力するか
2.TEMPORARY TABLE に一旦全部読み込んでから、本番tableへselectしたデータをinsertするか
のどちらかでしょう。
それぞれ
1.マクロ記録機能を用いて、「範囲選択→選択範囲書き出し」の実行過程を記録して、適宜マクロ編集すれば、必要部分書きだしマクロが出来るのでは?
2.3つのsql文でいけるでしょう。
CREATE TEMPORARY TABLE `ttt` (
/* 項目リスト,カラム型は本番tableに合わせる */
a text,b text, c int, d double
);
LOAD DATA LOCAL INFILE 'xx.csv'
INTO TABLE `ttt`
FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '\\'
LINES TERMINATED BY '\r\n';
INSERT INTO `honban` (column list) select /*対応項目リスト*/c,d from `ttt`;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- Excel(エクセル) エクセル テーブル機能の不明点 2 2022/04/14 14:10
- その他(プログラミング・Web制作) pythonのpandasのcsvの外部結合(outer_join)した際に列が想定とは異なる事象 1 2022/05/25 13:23
- Excel(エクセル) EXCELの「接続」のSQLのコマンド文字列にて、セルから任意の数値を利用したい 2 2023/03/09 16:43
- Visual Basic(VBA) エクセルVBA 4 2022/05/14 00:51
- その他(プログラミング・Web制作) Pythonで、データファイルと列名ファイルを1つのファイルにしたいです。 1 2023/07/27 20:29
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- Excel(エクセル) csvに別のExcelの文章を差し込む 2 2023/04/01 16:06
- Oracle sqlで質問です。 Aテーブルの情報をBテーブルに更新かけたいです。 やりたいことは、Bテーブルの受 1 2023/05/17 11:17
- Access(アクセス) CSVファイルの「0落ち」にVBA 6 2023/02/02 15:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
INDIRECT関数の代替方法は?
-
BULK INSERT時のNull許容について
-
【Transact-sql】 where条件、i...
-
Oracleの制約について
-
SQLiteで「UPDATE table1 SET c...
-
DBの定義のサイズを大きくし過...
-
UNIONする際、片方テーブルしか...
-
SQLServerでNULLを挿入したいです
-
SELECT文で、指定カラム以外の...
-
mysqlで50音順にorder byしたい。
-
MYSQLで全てのカラムから検索す...
-
now()かCURRENT_TIMESTAMPか
-
JDBCドライバがない?
-
LIKEの右側にカラムを指定でき...
-
type date にnullをinsert
-
GREATESTで NULLをスルーする方...
-
Mysql DATE型のDEFAULT値
-
Select文で結合した時に、重複...
-
構造が異なる二つのテーブルをu...
-
AUTO_INCREMENTに0はダメ?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
INDIRECT関数の代替方法は?
-
BULK INSERT時のNull許容について
-
【Transact-sql】 where条件、i...
-
Accessの「IIF」に相当するSQL...
-
WHERE句で結合。INNER JOINとの...
-
create tableのフィールド名
-
列を行に表示する方法は?
-
SQLiteで「UPDATE table1 SET c...
-
自分自身のテーブルを参照して更新
-
Accessで複数(3以上)...
-
一部のカラムでdistinctし全て...
-
SQLServerでNULLを挿入したいです
-
テーブルの列数を調べたい
-
SELECT文で、指定カラム以外の...
-
DBの定義のサイズを大きくし過...
-
now()かCURRENT_TIMESTAMPか
-
LIKEの右側にカラムを指定でき...
-
UNIONする際、片方テーブルしか...
-
MYSQLで全てのカラムから検索す...
-
GREATESTで NULLをスルーする方...
おすすめ情報