Pau*_*aul 7 sql sql-server excel sql-server-2008
脚本
我需要每天通过电子表格更新SQL 2008数据库(唯一可用的选项).格式非常基本,但可能有数百万条记录.Column1和Column3将具有许多预定义的重复值,已经被拉出到单独的表中.
电子表格示例
Column1 Column2 Column3
Apple 10 Red
Apple 20 Red
Apple 15 Blue
Apple 21 Green
Orange 10 Orange
Orange 7 Orange
Orange 9 Red
Orange 70 Blue
Orange 10 Blue
Run Code Online (Sandbox Code Playgroud)
数据库设置
我的数据库设置有三个单独的表:
//Lookup_Column1
id type
1 Apple
2 Orange
//Lookup_Column3
id type
1 Red
2 Blue
3 Green
4 Orange
//Main - this is what should be inserted, after Column1
//and Column2 are matched to their respective ID's
key Column1 Column2 Column3
1 1 10 1
2 1 20 1
3 1 15 2
4 1 21 3
5 2 10 4
6 2 7 4
7 2 9 1
8 2 70 2
9 2 10 2
Run Code Online (Sandbox Code Playgroud)
题
如何编写SQL以插入与查找表中的信息匹配的记录?我怎么能这样做:
INSERT INTO Main(Column1, Column2) VALUES ('Apple', 10, 'Red');
Run Code Online (Sandbox Code Playgroud)
对此:
INSERT INTO Main(Column1, Column2) VALUES (1, 10, 1);
//pulled from lookup tables, where Apple = 1 and Red = 1
Run Code Online (Sandbox Code Playgroud)
你可以尝试这样的事情:
INSERT INTO Main(Column1, Column2, Column3) VALUES
(
(SELECT id FROM Lookup_Column1 WHERE type = 'Apple'),
10,
(SELECT id FROM Lookup_Column3 WHERE type = 'Red')
);
Run Code Online (Sandbox Code Playgroud)
没有任何容错,但只要您可以将电子表格值解析为SELECT语句,它就会起作用.
| 归档时间: |
|
| 查看次数: |
4064 次 |
| 最近记录: |