Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
hitoyama
Contributor
Contributor

CSVのデータを呼び込む条件として、ODBC上のテーブルを元にした抽出条件を使う場合は

山崎です。

例えば、ローカルのCSVファイルを読み込む時に、同じくローカルのSQLiteのテーブルにあるデータを使って

抽出条件としてCSVを呼び込むロードスクリプトの書き方がわかりません。

ODBC CONNECT TO data2017;

tmp_data:

LOAD id,

name,

age,

sex

FROM

csv\master2017.xlsx

(ooxml, embedded labels, table is Sheet1)

Where id IN (SELECT ID from TableA Where sex = 'man');

このアプローチができないとなれば、他にどのようなやり口があるか

教えていただければ幸いです。

Labels (1)
1 Solution

Accepted Solutions
hka
Employee
Employee

やりたいことは、SQL Liteに存在するIDでsexがmanを取り出したいということですかね?

下記のような感じでできます。

tempSQL:

SQL Select ID FROM TableA where sex='max';

LOAD id,

name,

age,

sex

FROM

csv\master2017.xlsx

(ooxml, embedded labels, table is Sheet1)

Where exsists(ID,id);

drop table tempSQL;

View solution in original post

4 Replies
kentaroWakamatsu
Creator II
Creator II

SQLiteは使ったことが無いので、記述はおかしいかもしれませんが、以下のように先にSQLiteから対象を取得して、Inner Joinでcsvファイルをひもづければどうでしょうか?

SELECT ID from TableA Where sex = 'man';

Inner Join

LOAD id,

name,

age,

sex

FROM

csv\master2017.xlsx

(ooxml, embedded labels, table is Sheet1);

hka
Employee
Employee

やりたいことは、SQL Liteに存在するIDでsexがmanを取り出したいということですかね?

下記のような感じでできます。

tempSQL:

SQL Select ID FROM TableA where sex='max';

LOAD id,

name,

age,

sex

FROM

csv\master2017.xlsx

(ooxml, embedded labels, table is Sheet1)

Where exsists(ID,id);

drop table tempSQL;

hitoyama
Contributor
Contributor
Author

Kawahara さん

期待通りのデータ取得が出来ました。

ありがとうございます。

抽出条件のテーブル:A

対象データ(CSV、EXCEL、テーブル):B

Where exists(A:項目、B:項目)

このような書き方が出来るなら、柔軟なデータ取得と不要なデータを持たないやり方が

出来るのでデータ加工で対応力が上がった気持ちです。

ありがとうございました。

kentaroWakamatsu
Creator II
Creator II

「exsists」便利ですね!

参考になりました。