我有一個來自所有州的地址資料庫。我想按州將它們分開,每個州一張桌子。如果第 2 列的值處于某個狀態,我想將所有 42 列的所有值從源表復制到具有相同列的目標表。
例如,我想在第 2 列中搜索 IN (Indiana),如果 IN 在第 2 列中,則將所有列中的資料復制到名為 Indiana 的單獨表中。
uj5u.com熱心網友回復:
以下是如何做的步驟:
- 創建您的目標資料庫。重要的是這些包含與源表相同的表結構。所以基本上,在偽代碼中,這樣做:
for each value in data column:
execute this with sqlite:
sqlite3 stateX.db "create table adresses (id, state, zip, road...)"
現在用 sqlite 打開你的源檔案:
sqlite3.exe mainfile.db您現在可以匯出資料。例如:
IN印第安納州。在 SQL 中添加注釋。
/* do this with Indiana */
ATTACH 'stateIN.db' as other;
/* insert data, select 'IN' from field 'thestate' */
INSERT INTO other.adresses
SELECT * FROM address WHERE thestate='IN';
/* done, detach the other database */
DETACH other;
- 對其他值重復相同
提示:您可以為源列中的每個唯一值自動創建 SQL 檔案(這是一個不同的主題)。
這些 SQL 檔案中的每一個都可能如下所示:
/* CA.sql file */
attach 'CA.db' as oth; /* for california */
create table oth.address (c1,c2,....); /* edit as needed */
insert into oth.abc select * from address;
detach oth;
和運行使用
sqlite3.exe addresses.db < ca.sql
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/490812.html
標籤:sqlite
